REST API reference¶
Auto-generated from the live SJVAir API spec at https://www.sjvair.com/api/2.0/openapi.json — this is the underlying REST API the Python client and CLI talk to.
Monitors¶
GET /monitors/
List all air quality monitors.
- GET /monitors/¶
- Query Parameters:
name (string)
name__contains (string)
name__icontains (string)
position (string)
position__bbcontains (string)
position__bboverlaps (string)
position__distance_gt (string)
position__distance_lt (string)
is_sjvair (boolean)
location (string:enum)
county (string:enum)
device (string)
- GET /monitors/
- Response JSON Object:
data[] (object)
data[].id (string:uuid, required)
data[].name (string, required)
data[].is_sjvair (boolean, required) – Is this monitor part of the SJVAir network?
data[].position (object, required)
data[].location (string:enum, required)
data[].county (string:enum, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 }, { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 } ] }
GET /monitors/meta/
GET /monitors/{entry_type}/closest/
Return the three nearest active monitors to a given latitude/longitude that have recent data for the specified entry type.
- GET /monitors/{entry_type}/closest/¶
- Parameters:
entry_type (string, required)
- GET /monitors/{entry_type}/closest/
- Response JSON Object:
data[] (object)
data[].id (string:uuid, required)
data[].name (string, required)
data[].is_sjvair (boolean, required) – Is this monitor part of the SJVAir network?
data[].position (object, required)
data[].location (string:enum, required)
data[].county (string:enum, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 }, { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 } ] }
GET /monitors/{entry_type}/current/
List monitors with recent, healthy data for the specified entry type. Suitable for map display.
- GET /monitors/{entry_type}/current/¶
- Parameters:
entry_type (string, required)
- GET /monitors/{entry_type}/current/
- Response JSON Object:
data[] (object)
data[].id (string:uuid, required)
data[].name (string, required)
data[].is_sjvair (boolean, required) – Is this monitor part of the SJVAir network?
data[].position (object, required)
data[].location (string:enum, required)
data[].county (string:enum, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 }, { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 } ] }
GET /monitors/{entry_type}/at/
Monitors with data as of a historical timestamp, like current/ but for a specific point in time.
Optionally scope to one or more region ids (covered by any of their boundaries) or a bbox
(west,south,east,north).
- GET /monitors/{entry_type}/at/¶
- Parameters:
entry_type (string, required)
- GET /monitors/{entry_type}/at/
- Response JSON Object:
data[] (object)
data[].id (string:uuid, required)
data[].name (string, required)
data[].is_sjvair (boolean, required) – Is this monitor part of the SJVAir network?
data[].position (object, required)
data[].location (string:enum, required)
data[].county (string:enum, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 }, { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 } ] }
GET /monitors/{monitor_id}/
Retrieve a single monitor by ID, including its latest sensor readings.
- GET /monitors/{monitor_id}/¶
- Parameters:
monitor_id (string, required)
- GET /monitors/{monitor_id}/
- Response JSON Object:
data (object)
data.id (string:uuid, required)
data.name (string, required)
data.is_sjvair (boolean, required) – Is this monitor part of the SJVAir network?
data.position (object, required)
data.location (string:enum, required)
data.county (string:enum, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": "string", "name": "string", "type": 1, "device": 1, "grade": 1, "is_active": 1, "is_sjvair": true, "position": {}, "last_active_limit": 1, "location": "inside", "county": "Fresno", "data_source": 1, "data_providers": 1 } }
404 Not Found – Not found
GET /monitors/{monitor_id}/entries/export/csv/
Export a monitor’s resolved entries as a CSV download for a given date range.
- GET /monitors/{monitor_id}/entries/export/csv/¶
- Parameters:
monitor_id (string, required)
- Query Parameters:
start_date (string:date, required)
end_date (string:date, required)
scope (string:enum)
- GET /monitors/{monitor_id}/entries/export/csv/
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: text/csv string
400 Bad Request – Bad request
POST /monitors/{monitor_id}/entries/export/csv/
Export a monitor’s resolved entries as a CSV download for a given date range.
- POST /monitors/{monitor_id}/entries/export/csv/¶
- Parameters:
monitor_id (string, required)
- POST /monitors/{monitor_id}/entries/export/csv/
- Request JSON Object:
start_date (string:date, required)
end_date (string:date, required)
scope (string:enum)
POST /monitors/{monitor_id}/entries/export/csv/ HTTP/1.1 Content-Type: application/json { "start_date": "2020-01-01", "end_date": "2020-01-01", "scope": "resolved" }
- POST /monitors/{monitor_id}/entries/export/csv/
- Status Codes:
200 OK – OK
400 Bad Request – Bad request
GET /monitors/{monitor_id}/entries/export/json/
Export a monitor’s resolved entries as JSON for a given date range.
- GET /monitors/{monitor_id}/entries/export/json/¶
- Parameters:
monitor_id (string, required)
- Query Parameters:
start_date (string:date, required)
end_date (string:date, required)
scope (string:enum)
- GET /monitors/{monitor_id}/entries/export/json/
- Status Codes:
200 OK – OK
400 Bad Request – Bad request
POST /monitors/{monitor_id}/entries/export/json/
Export a monitor’s resolved entries as JSON for a given date range.
- POST /monitors/{monitor_id}/entries/export/json/¶
- Parameters:
monitor_id (string, required)
- POST /monitors/{monitor_id}/entries/export/json/
- Request JSON Object:
start_date (string:date, required)
end_date (string:date, required)
scope (string:enum)
POST /monitors/{monitor_id}/entries/export/json/ HTTP/1.1 Content-Type: application/json { "start_date": "2020-01-01", "end_date": "2020-01-01", "scope": "resolved" }
- POST /monitors/{monitor_id}/entries/export/json/
- Status Codes:
200 OK – OK
400 Bad Request – Bad request
GET /monitors/{monitor_id}/entries/{entry_type}/
Paginated time-series entries for a monitor filtered by entry type (e.g. pm25, temperature).
- GET /monitors/{monitor_id}/entries/{entry_type}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/entries/{entry_type}/
- Response JSON Object:
data[] (object)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "sensor": 1, "stage": 1, "processor": 1, "entry_type": 1 }, { "timestamp": 1, "sensor": 1, "stage": 1, "processor": 1, "entry_type": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/entries/{entry_type}/csv/
Download entries for a monitor as a CSV file.
GET /monitors/{monitor_id}/archive/
List available monthly entry archive files for a monitor.
- GET /monitors/{monitor_id}/archive/¶
- Parameters:
monitor_id (string, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/archive/
- Response JSON Object:
data[] (object)
data[].month (integer:enum, required)
data[].year (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "month": "1", "year": 1, "url": 1 }, { "month": "1", "year": 1, "url": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/archive/{year}/{month}/
Redirect to the download URL for a monitor’s monthly entry archive CSV.
- GET /monitors/{monitor_id}/archive/{year}/{month}/¶
- Parameters:
monitor_id (string, required)
year (integer, required)
month (integer, required)
- GET /monitors/{monitor_id}/archive/{year}/{month}/
- Response JSON Object:
data (object)
data.month (integer:enum, required)
data.year (integer, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "month": "1", "year": 1, "url": 1 } }
404 Not Found – Not found
GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/{month}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/{month}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
month (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/{month}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/{month}/{day}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/{month}/{day}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
month (integer, required)
day (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/hourly/{year}/{month}/{day}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/daily/{year}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/daily/{year}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/daily/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/daily/{year}/{month}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/daily/{year}/{month}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
month (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/daily/{year}/{month}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/monthly/{year}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/monthly/{year}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/monthly/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/quarterly/{year}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/quarterly/{year}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/quarterly/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/seasonal/{year}/
- GET /monitors/{monitor_id}/summaries/{entry_type}/seasonal/{year}/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/seasonal/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /monitors/{monitor_id}/summaries/{entry_type}/yearly/
- GET /monitors/{monitor_id}/summaries/{entry_type}/yearly/¶
- Parameters:
monitor_id (string, required)
entry_type (string, required)
- Query Parameters:
page (integer)
- GET /monitors/{monitor_id}/summaries/{entry_type}/yearly/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].processor (string, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].is_complete (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "processor": "string", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "is_complete": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
Calibrations¶
GET /calibrations/
List all enabled calibration models used to correct sensor readings.
- GET /calibrations/¶
- Query Parameters:
page (integer)
- GET /calibrations/
- Response JSON Object:
data[] (object)
data[].id (string:uuid, required)
data[].reference_id (string:uuid, required)
data[].colocated_id (string:uuid, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": "string", "reference_id": "string", "colocated_id": "string", "name": 1, "position": 1 }, { "id": "string", "reference_id": "string", "colocated_id": "string", "name": 1, "position": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
CalEnviroScreen¶
GET /calenviroscreen/4.0/{year}/
List CalEnviroScreen 4.0 scores for all census tracts for a given year.
- GET /calenviroscreen/4.0/{year}/¶
- Parameters:
year (string, required)
- Query Parameters:
page (integer)
dac_sb535 (boolean)
dac_category (string:enum)
ci_score (integer)
ci_score__lt (integer)
ci_score__lte (integer)
ci_score__gt (integer)
ci_score__gte (integer)
ci_score_p (integer)
ci_score_p__lt (integer)
ci_score_p__lte (integer)
ci_score_p__gt (integer)
ci_score_p__gte (integer)
pollution_p (integer)
pollution_p__lt (integer)
pollution_p__lte (integer)
pollution_p__gt (integer)
pollution_p__gte (integer)
popchar_p (integer)
popchar_p__lt (integer)
popchar_p__lte (integer)
popchar_p__gt (integer)
popchar_p__gte (integer)
pol_pm_p (integer)
pol_pm_p__lt (integer)
pol_pm_p__lte (integer)
pol_pm_p__gt (integer)
pol_pm_p__gte (integer)
pol_ozone_p (integer)
pol_ozone_p__lt (integer)
pol_ozone_p__lte (integer)
pol_ozone_p__gt (integer)
pol_ozone_p__gte (integer)
pol_diesel_p (integer)
pol_diesel_p__lt (integer)
pol_diesel_p__lte (integer)
pol_diesel_p__gt (integer)
pol_diesel_p__gte (integer)
pol_traffic_p (integer)
pol_traffic_p__lt (integer)
pol_traffic_p__lte (integer)
pol_traffic_p__gt (integer)
pol_traffic_p__gte (integer)
region_id (string)
- GET /calenviroscreen/4.0/{year}/
- Response JSON Object:
data[] (object)
data[].population (integer, required)
data[].ci_score (number, required)
data[].ci_score_p (number, required)
data[].dac_sb535 (boolean, required)
data[].pollution (number, required)
data[].pollution_s (number, required)
data[].pollution_p (number, required)
data[].pol_ozone (number, required)
data[].pol_ozone_p (number, required)
data[].pol_pm (number, required)
data[].pol_pm_p (number, required)
data[].pol_diesel (number, required)
data[].pol_diesel_p (number, required)
data[].pol_pest (number, required)
data[].pol_pest_p (number, required)
data[].pol_rsei_haz (number, required)
data[].pol_rsei_haz_p (number, required)
data[].pol_traffic (number, required)
data[].pol_traffic_p (number, required)
data[].pol_drink (number, required)
data[].pol_drink_p (number, required)
data[].pol_haz (number, required)
data[].pol_haz_p (number, required)
data[].pol_lead (number, required)
data[].pol_lead_p (number, required)
data[].pol_cleanups (number, required)
data[].pol_cleanups_p (number, required)
data[].pol_gwthreats (number, required)
data[].pol_gwthreats_p (number, required)
data[].pol_iwb (number, required)
data[].pol_iwb_p (number, required)
data[].pol_swis (number, required)
data[].pol_swis_p (number, required)
data[].popchar (number, required)
data[].popchar_s (number, required)
data[].popchar_p (number, required)
data[].char_asthma (number, required)
data[].char_asthma_p (number, required)
data[].char_cvd (number, required)
data[].char_cvd_p (number, required)
data[].char_lbw (number, required)
data[].char_lbw_p (number, required)
data[].char_edu (number, required)
data[].char_edu_p (number, required)
data[].char_ling (number, required)
data[].char_ling_p (number, required)
data[].char_pov (number, required)
data[].char_pov_p (number, required)
data[].char_unemp (number, required)
data[].char_unemp_p (number, required)
data[].char_housingb (number, required)
data[].char_housingb_p (number, required)
data[].pop_under_10 (integer, required)
data[].pop_10_64 (integer, required)
data[].pop_65_plus (integer, required)
data[].pop_hispanic (integer, required)
data[].pop_white (integer, required)
data[].pop_black (integer, required)
data[].pop_native (integer, required)
data[].pop_aapi (integer, required)
data[].pop_other (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "tract": 1, "census_year": 1, "population": 1, "ci_score": 1.0, "ci_score_p": 1.0, "dac_sb535": true, "dac_category": 1, "pollution": 1.0, "pollution_s": 1.0, "pollution_p": 1.0, "pol_ozone": 1.0, "pol_ozone_p": 1.0, "pol_pm": 1.0, "pol_pm_p": 1.0, "pol_diesel": 1.0, "pol_diesel_p": 1.0, "pol_pest": 1.0, "pol_pest_p": 1.0, "pol_rsei_haz": 1.0, "pol_rsei_haz_p": 1.0, "pol_traffic": 1.0, "pol_traffic_p": 1.0, "pol_drink": 1.0, "pol_drink_p": 1.0, "pol_haz": 1.0, "pol_haz_p": 1.0, "pol_lead": 1.0, "pol_lead_p": 1.0, "pol_cleanups": 1.0, "pol_cleanups_p": 1.0, "pol_gwthreats": 1.0, "pol_gwthreats_p": 1.0, "pol_iwb": 1.0, "pol_iwb_p": 1.0, "pol_swis": 1.0, "pol_swis_p": 1.0, "popchar": 1.0, "popchar_s": 1.0, "popchar_p": 1.0, "char_asthma": 1.0, "char_asthma_p": 1.0, "char_cvd": 1.0, "char_cvd_p": 1.0, "char_lbw": 1.0, "char_lbw_p": 1.0, "char_edu": 1.0, "char_edu_p": 1.0, "char_ling": 1.0, "char_ling_p": 1.0, "char_pov": 1.0, "char_pov_p": 1.0, "char_unemp": 1.0, "char_unemp_p": 1.0, "char_housingb": 1.0, "char_housingb_p": 1.0, "pop_under_10": 1, "pop_10_64": 1, "pop_65_plus": 1, "pop_hispanic": 1, "pop_white": 1, "pop_black": 1, "pop_native": 1, "pop_aapi": 1, "pop_other": 1 }, { "tract": 1, "census_year": 1, "population": 1, "ci_score": 1.0, "ci_score_p": 1.0, "dac_sb535": true, "dac_category": 1, "pollution": 1.0, "pollution_s": 1.0, "pollution_p": 1.0, "pol_ozone": 1.0, "pol_ozone_p": 1.0, "pol_pm": 1.0, "pol_pm_p": 1.0, "pol_diesel": 1.0, "pol_diesel_p": 1.0, "pol_pest": 1.0, "pol_pest_p": 1.0, "pol_rsei_haz": 1.0, "pol_rsei_haz_p": 1.0, "pol_traffic": 1.0, "pol_traffic_p": 1.0, "pol_drink": 1.0, "pol_drink_p": 1.0, "pol_haz": 1.0, "pol_haz_p": 1.0, "pol_lead": 1.0, "pol_lead_p": 1.0, "pol_cleanups": 1.0, "pol_cleanups_p": 1.0, "pol_gwthreats": 1.0, "pol_gwthreats_p": 1.0, "pol_iwb": 1.0, "pol_iwb_p": 1.0, "pol_swis": 1.0, "pol_swis_p": 1.0, "popchar": 1.0, "popchar_s": 1.0, "popchar_p": 1.0, "char_asthma": 1.0, "char_asthma_p": 1.0, "char_cvd": 1.0, "char_cvd_p": 1.0, "char_lbw": 1.0, "char_lbw_p": 1.0, "char_edu": 1.0, "char_edu_p": 1.0, "char_ling": 1.0, "char_ling_p": 1.0, "char_pov": 1.0, "char_pov_p": 1.0, "char_unemp": 1.0, "char_unemp_p": 1.0, "char_housingb": 1.0, "char_housingb_p": 1.0, "pop_under_10": 1, "pop_10_64": 1, "pop_65_plus": 1, "pop_hispanic": 1, "pop_white": 1, "pop_black": 1, "pop_native": 1, "pop_aapi": 1, "pop_other": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /calenviroscreen/4.0/{year}/{tract}/
Retrieve the CalEnviroScreen 4.0 score for a specific census tract.
- GET /calenviroscreen/4.0/{year}/{tract}/¶
- Parameters:
year (string, required)
tract (string, required)
- GET /calenviroscreen/4.0/{year}/{tract}/
- Response JSON Object:
data (object)
data.population (integer, required)
data.ci_score (number, required)
data.ci_score_p (number, required)
data.dac_sb535 (boolean, required)
data.pollution (number, required)
data.pollution_s (number, required)
data.pollution_p (number, required)
data.pol_ozone (number, required)
data.pol_ozone_p (number, required)
data.pol_pm (number, required)
data.pol_pm_p (number, required)
data.pol_diesel (number, required)
data.pol_diesel_p (number, required)
data.pol_pest (number, required)
data.pol_pest_p (number, required)
data.pol_rsei_haz (number, required)
data.pol_rsei_haz_p (number, required)
data.pol_traffic (number, required)
data.pol_traffic_p (number, required)
data.pol_drink (number, required)
data.pol_drink_p (number, required)
data.pol_haz (number, required)
data.pol_haz_p (number, required)
data.pol_lead (number, required)
data.pol_lead_p (number, required)
data.pol_cleanups (number, required)
data.pol_cleanups_p (number, required)
data.pol_gwthreats (number, required)
data.pol_gwthreats_p (number, required)
data.pol_iwb (number, required)
data.pol_iwb_p (number, required)
data.pol_swis (number, required)
data.pol_swis_p (number, required)
data.popchar (number, required)
data.popchar_s (number, required)
data.popchar_p (number, required)
data.char_asthma (number, required)
data.char_asthma_p (number, required)
data.char_cvd (number, required)
data.char_cvd_p (number, required)
data.char_lbw (number, required)
data.char_lbw_p (number, required)
data.char_edu (number, required)
data.char_edu_p (number, required)
data.char_ling (number, required)
data.char_ling_p (number, required)
data.char_pov (number, required)
data.char_pov_p (number, required)
data.char_unemp (number, required)
data.char_unemp_p (number, required)
data.char_housingb (number, required)
data.char_housingb_p (number, required)
data.pop_under_10 (integer, required)
data.pop_10_64 (integer, required)
data.pop_65_plus (integer, required)
data.pop_hispanic (integer, required)
data.pop_white (integer, required)
data.pop_black (integer, required)
data.pop_native (integer, required)
data.pop_aapi (integer, required)
data.pop_other (integer, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "tract": 1, "census_year": 1, "population": 1, "ci_score": 1.0, "ci_score_p": 1.0, "dac_sb535": true, "dac_category": 1, "pollution": 1.0, "pollution_s": 1.0, "pollution_p": 1.0, "pol_ozone": 1.0, "pol_ozone_p": 1.0, "pol_pm": 1.0, "pol_pm_p": 1.0, "pol_diesel": 1.0, "pol_diesel_p": 1.0, "pol_pest": 1.0, "pol_pest_p": 1.0, "pol_rsei_haz": 1.0, "pol_rsei_haz_p": 1.0, "pol_traffic": 1.0, "pol_traffic_p": 1.0, "pol_drink": 1.0, "pol_drink_p": 1.0, "pol_haz": 1.0, "pol_haz_p": 1.0, "pol_lead": 1.0, "pol_lead_p": 1.0, "pol_cleanups": 1.0, "pol_cleanups_p": 1.0, "pol_gwthreats": 1.0, "pol_gwthreats_p": 1.0, "pol_iwb": 1.0, "pol_iwb_p": 1.0, "pol_swis": 1.0, "pol_swis_p": 1.0, "popchar": 1.0, "popchar_s": 1.0, "popchar_p": 1.0, "char_asthma": 1.0, "char_asthma_p": 1.0, "char_cvd": 1.0, "char_cvd_p": 1.0, "char_lbw": 1.0, "char_lbw_p": 1.0, "char_edu": 1.0, "char_edu_p": 1.0, "char_ling": 1.0, "char_ling_p": 1.0, "char_pov": 1.0, "char_pov_p": 1.0, "char_unemp": 1.0, "char_unemp_p": 1.0, "char_housingb": 1.0, "char_housingb_p": 1.0, "pop_under_10": 1, "pop_10_64": 1, "pop_65_plus": 1, "pop_hispanic": 1, "pop_white": 1, "pop_black": 1, "pop_native": 1, "pop_aapi": 1, "pop_other": 1 } }
404 Not Found – Not found
Regions¶
GET /regions/
- GET /regions/¶
- Query Parameters:
name (string)
slug (string)
type (string)
- GET /regions/
- Response JSON Object:
data[] (object)
data[].name (string, required)
data[].slug (string, required)
data[].type (string:enum, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "name": "string", "slug": "string", "type": "county", "boundary": 1 }, { "id": 1, "name": "string", "slug": "string", "type": "county", "boundary": 1 } ] }
GET /regions/places/search/
Search regions by name, returning all high-confidence matches ordered by similarity. Accepts ?q=<name> and optional ?type=<type> to scope to a specific region type.
- GET /regions/places/search/¶
- Query Parameters:
q (string)
type (string)
- GET /regions/places/search/
- Status Codes:
200 OK – OK
400 Bad Request – Bad request
GET /regions/places/lookup/
Resolve a name to the single best-match region. Without ?type, resolves to the containing Place using City/CDP fallback. With ?type=<type>, returns the top match within that type directly.
- GET /regions/places/lookup/¶
- Query Parameters:
q (string)
type (string)
- GET /regions/places/lookup/
- Status Codes:
200 OK – OK
400 Bad Request – Bad request
GET /regions/{region_id}/
- GET /regions/{region_id}/¶
- Parameters:
region_id (string, required)
- GET /regions/{region_id}/
- Response JSON Object:
data (object)
data.name (string, required)
data.slug (string, required)
data.type (string:enum, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": 1, "name": "string", "slug": "string", "type": "county", "boundary": 1 } }
404 Not Found – Not found
GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/
- GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/{month}/
- GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/{month}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
month (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/{month}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/{month}/{day}/
- GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/{month}/{day}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
month (integer, required)
day (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/hourly/{year}/{month}/{day}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/daily/{year}/
- GET /regions/{region_id}/summaries/{entry_type}/daily/{year}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/daily/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/daily/{year}/{month}/
- GET /regions/{region_id}/summaries/{entry_type}/daily/{year}/{month}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
month (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/daily/{year}/{month}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/monthly/{year}/
- GET /regions/{region_id}/summaries/{entry_type}/monthly/{year}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/monthly/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/quarterly/{year}/
- GET /regions/{region_id}/summaries/{entry_type}/quarterly/{year}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/quarterly/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/seasonal/{year}/
- GET /regions/{region_id}/summaries/{entry_type}/seasonal/{year}/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
year (integer, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/seasonal/{year}/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /regions/{region_id}/summaries/{entry_type}/yearly/
- GET /regions/{region_id}/summaries/{entry_type}/yearly/¶
- Parameters:
region_id (string, required)
entry_type (string, required)
- Query Parameters:
page (integer)
- GET /regions/{region_id}/summaries/{entry_type}/yearly/
- Response JSON Object:
data[] (object)
data[].entry_type (string, required)
data[].resolution (string:enum, required)
data[].count (integer, required)
data[].expected_count (integer, required)
data[].minimum (number, required)
data[].maximum (number, required)
data[].mean (number, required)
data[].stddev (number, required)
data[].p25 (number, required)
data[].p75 (number, required)
data[].station_count (integer, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 }, { "timestamp": 1, "entry_type": "string", "resolution": "hour", "count": 1, "expected_count": 1, "minimum": 1.0, "maximum": 1.0, "mean": 1.0, "stddev": 1.0, "p25": 1.0, "p75": 1.0, "station_count": 1 } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
CEIDARS¶
GET /ceidars/
List CEIDARS permitted facilities with their most recent annual emissions data.
- GET /ceidars/¶
- Query Parameters:
year (integer)
sources (string)
county (string)
city (string)
zipcode (string)
- GET /ceidars/
- Response JSON Object:
data[] (object)
data[].facid (integer, required)
data[].name (string, required)
data[].sic_code (integer, required)
data[].point (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "facid": 1, "name": "string", "address": 1, "county_id": 1, "county": 1, "city_id": 1, "city": 1, "zipcode_id": 1, "zipcode": 1, "sic_code": 1, "is_minor_source": 1, "point": {} }, { "id": 1, "facid": 1, "name": "string", "address": 1, "county_id": 1, "county": 1, "city_id": 1, "city": 1, "zipcode_id": 1, "zipcode": 1, "sic_code": 1, "is_minor_source": 1, "point": {} } ] }
GET /ceidars/years/
GET /ceidars/{facility_id}/
Retrieve a single CEIDARS facility with its full emissions history.
- GET /ceidars/{facility_id}/¶
- Parameters:
facility_id (string, required)
- GET /ceidars/{facility_id}/
- Response JSON Object:
data (object)
data.facid (integer, required)
data.name (string, required)
data.sic_code (integer, required)
data.point (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": 1, "facid": 1, "name": "string", "address": 1, "county_id": 1, "county": 1, "city_id": 1, "city": 1, "zipcode_id": 1, "zipcode": 1, "sic_code": 1, "is_minor_source": 1, "point": {} } }
404 Not Found – Not found
HMS¶
GET /hms/smoke/
List HMS smoke plumes. Defaults to today’s data, falling back to yesterday before noon if today’s data isn’t yet available.
- GET /hms/smoke/¶
- Query Parameters:
page (integer)
date (string:date)
date__lt (string:date)
date__lte (string:date)
date__gt (string:date)
date__gte (string:date)
satellite (string)
satellite__iexact (string)
density (string:enum)
density__iexact (string)
start (string:date-time)
start__lt (string:date-time)
start__lte (string:date-time)
start__gt (string:date-time)
start__gte (string:date-time)
end (string:date-time)
end__lt (string:date-time)
end__lte (string:date-time)
end__gt (string:date-time)
end__gte (string:date-time)
region_id (string)
- GET /hms/smoke/
- Response JSON Object:
data[] (object)
data[].id (string:uuid, required)
data[].date (string:date, required)
data[].satellite (string, required)
data[].density (string:enum, required)
data[].start (string:date-time, required)
data[].end (string:date-time, required)
data[].geometry (object, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": "string", "date": "2020-01-01", "satellite": "string", "density": "light", "start": "2020-01-01T01:01:01Z", "end": "2020-01-01T01:01:01Z", "geometry": {} }, { "id": "string", "date": "2020-01-01", "satellite": "string", "density": "light", "start": "2020-01-01T01:01:01Z", "end": "2020-01-01T01:01:01Z", "geometry": {} } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /hms/smoke/{smoke_id}/
Retrieve a single HMS smoke plume record.
- GET /hms/smoke/{smoke_id}/¶
- Parameters:
smoke_id (string, required)
- GET /hms/smoke/{smoke_id}/
- Response JSON Object:
data (object)
data.id (string:uuid, required)
data.date (string:date, required)
data.satellite (string, required)
data.density (string:enum, required)
data.start (string:date-time, required)
data.end (string:date-time, required)
data.geometry (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": "string", "date": "2020-01-01", "satellite": "string", "density": "light", "start": "2020-01-01T01:01:01Z", "end": "2020-01-01T01:01:01Z", "geometry": {} } }
404 Not Found – Not found
GET /hms/fire/
List HMS active fire detections. Defaults to today’s data, falling back to yesterday before noon.
- GET /hms/fire/¶
- Query Parameters:
page (integer)
date (string:date)
date__lt (string:date)
date__lte (string:date)
date__gt (string:date)
date__gte (string:date)
satellite (string)
satellite__iexact (string)
timestamp (string:date-time)
timestamp__lt (string:date-time)
timestamp__lte (string:date-time)
timestamp__gt (string:date-time)
timestamp__gte (string:date-time)
method (string)
method__iexact (string)
region_id (string)
- GET /hms/fire/
- Response JSON Object:
data[] (object)
data[].id (string:uuid, required)
data[].date (string:date, required)
data[].satellite (string, required)
data[].timestamp (string:date-time, required)
data[].ecosystem (integer, required)
data[].method (string, required)
data[].geometry (object, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": "string", "date": "2020-01-01", "satellite": "string", "timestamp": "2020-01-01T01:01:01Z", "frp": 1, "ecosystem": 1, "method": "string", "geometry": {} }, { "id": "string", "date": "2020-01-01", "satellite": "string", "timestamp": "2020-01-01T01:01:01Z", "frp": 1, "ecosystem": 1, "method": "string", "geometry": {} } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /hms/fire/{fire_id}/
Retrieve a single HMS fire detection record.
- GET /hms/fire/{fire_id}/¶
- Parameters:
fire_id (string, required)
- GET /hms/fire/{fire_id}/
- Response JSON Object:
data (object)
data.id (string:uuid, required)
data.date (string:date, required)
data.satellite (string, required)
data.timestamp (string:date-time, required)
data.ecosystem (integer, required)
data.method (string, required)
data.geometry (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": "string", "date": "2020-01-01", "satellite": "string", "timestamp": "2020-01-01T01:01:01Z", "frp": 1, "ecosystem": 1, "method": "string", "geometry": {} } }
404 Not Found – Not found
Pesticides¶
GET /pesticides/region/{region_id}/summary/
Aggregate pesticide use records by chemical, commodity, and year for a region.
County regions use a direct FK; all other region types use an MTRS spatial join.
- GET /pesticides/region/{region_id}/summary/¶
- Parameters:
region_id (string, required)
- Query Parameters:
year (integer)
year__lte (integer)
year__gte (integer)
aerial_ground (string:enum)
chemical (integer)
commodity (string)
category (string)
iarc_group (string)
- GET /pesticides/region/{region_id}/summary/
- Response JSON Object:
data[] (object)
data[].region (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "region": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "data": 1, "count": 1 }, { "region": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "data": 1, "count": 1 } ] }
GET /pesticides/region/{region_id}/notice/
List pesticide application notices for a region. County uses a direct FK; other region types use an MTRS spatial join.
- GET /pesticides/region/{region_id}/notice/¶
- Parameters:
region_id (string, required)
- Query Parameters:
page (integer)
application_method (string)
application_method__iexact (string)
scheduled_application (string:date-time)
scheduled_application__lt (string:date-time)
scheduled_application__lte (string:date-time)
scheduled_application__gt (string:date-time)
scheduled_application__gte (string:date-time)
point__distance_lt (string)
point__distance_gt (string)
point__bbcontains (string)
point__bboverlaps (string)
county (string)
chemical (integer)
product (integer)
upcoming (boolean)
region_id (string)
- GET /pesticides/region/{region_id}/notice/
- Response JSON Object:
data[] (object)
data[].application_id (integer, required)
data[].comtrs (string, required)
data[].county (object, required)
data[].point (object, required)
data[].scheduled_application (string:date-time, required)
data[].treated_amount (number, required)
data[].treated_units (string, required)
data[].application_method (string, required)
data[].chemicals (object, required)
data[].products (object, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "application_id": 1, "comtrs": "string", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "point": {}, "scheduled_application": "2020-01-01T01:01:01Z", "treated_amount": 1.0, "treated_units": "string", "application_method": "string", "chemicals": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "products": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 } }, { "id": 1, "application_id": 1, "comtrs": "string", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "point": {}, "scheduled_application": "2020-01-01T01:01:01Z", "treated_amount": 1.0, "treated_units": "string", "application_method": "string", "chemicals": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "products": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 } } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /pesticides/region/{region_id}/use/
List pesticide use records for a region. County uses a direct FK; other region types use an MTRS spatial join.
- GET /pesticides/region/{region_id}/use/¶
- Parameters:
region_id (string, required)
- Query Parameters:
page (integer)
year (integer)
year__lt (integer)
year__lte (integer)
year__gt (integer)
year__gte (integer)
aerial_ground (string:enum)
application_date (string:date)
application_date__lt (string:date)
application_date__lte (string:date)
application_date__gt (string:date)
application_date__gte (string:date)
mtrs__boundary__geometry__distance_lt (string)
mtrs__boundary__geometry__distance_gt (string)
mtrs__boundary__geometry__bbcontains (string)
mtrs__boundary__geometry__bboverlaps (string)
county (string)
chemical (integer)
commodity (string)
product (integer)
region_id (string)
- GET /pesticides/region/{region_id}/use/
- Response JSON Object:
data[] (object)
data[].year (integer, required)
data[].use_no (integer, required)
data[].comtrs (string, required)
data[].lbs_chemical (number, required)
data[].acres_treated (number, required)
data[].application_date (string:date, required)
data[].aerial_ground (string:enum, required)
data[].county (object, required)
data[].mtrs (object, required)
data[].product (object, required)
data[].chemical (object, required)
data[].commodity (object, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "year": 1, "use_no": 1, "comtrs": "string", "lbs_chemical": 1.0, "acres_treated": 1.0, "application_date": "2020-01-01", "aerial_ground": "A", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "mtrs": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "product": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 }, "chemical": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "commodity": { "id": 1, "site_code": 1, "name": 1 } }, { "id": 1, "year": 1, "use_no": 1, "comtrs": "string", "lbs_chemical": 1.0, "acres_treated": 1.0, "application_date": "2020-01-01", "aerial_ground": "A", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "mtrs": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "product": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 }, "chemical": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "commodity": { "id": 1, "site_code": 1, "name": 1 } } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /pesticides/commodities/
List pesticide commodities (crops and sites where pesticides are applied).
- GET /pesticides/commodities/¶
- Query Parameters:
page (integer)
site_code (string)
name (string)
- GET /pesticides/commodities/
- Response JSON Object:
data[] (object)
data[].site_code (string, required)
data[].name (string, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "site_code": "string", "name": "string" }, { "id": 1, "site_code": "string", "name": "string" } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /pesticides/commodities/{commodity_id}/
Retrieve a single commodity with its associated chemicals and products.
- GET /pesticides/commodities/{commodity_id}/¶
- Parameters:
commodity_id (string, required)
- GET /pesticides/commodities/{commodity_id}/
- Response JSON Object:
data (object)
data.site_code (string, required)
data.name (string, required)
data.chemicals (object, required)
data.products (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": 1, "site_code": "string", "name": "string", "chemicals": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "products": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 } } }
404 Not Found – Not found
GET /pesticides/chemicals/
List pesticide chemicals with optional filtering by name, category, and IARC classification.
- GET /pesticides/chemicals/¶
- Query Parameters:
page (integer)
chem_code (integer)
iarc_group (string:enum)
name (string)
category (string)
- GET /pesticides/chemicals/
- Response JSON Object:
data[] (object)
data[].chem_code (integer, required)
data[].name (string, required)
data[].cas_number (string, required)
data[].dtxsid (string, required)
data[].iarc_group (string:enum, required)
data[].categories (string, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "chem_code": 1, "name": "string", "cas_number": "string", "dtxsid": "string", "iarc_group": "1", "categories": "string" }, { "id": 1, "chem_code": 1, "name": "string", "cas_number": "string", "dtxsid": "string", "iarc_group": "1", "categories": "string" } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /pesticides/chemicals/{chemical_id}/
Retrieve a single chemical with its associated products and commodities.
- GET /pesticides/chemicals/{chemical_id}/¶
- Parameters:
chemical_id (string, required)
- GET /pesticides/chemicals/{chemical_id}/
- Response JSON Object:
data (object)
data.chem_code (integer, required)
data.name (string, required)
data.cas_number (string, required)
data.dtxsid (string, required)
data.iarc_group (string:enum, required)
data.categories (string, required)
data.products (object, required)
data.commodities (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": 1, "chem_code": 1, "name": "string", "cas_number": "string", "dtxsid": "string", "iarc_group": "1", "categories": "string", "products": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 }, "commodities": { "id": 1, "site_code": 1, "name": 1 } } }
404 Not Found – Not found
GET /pesticides/products/
List registered pesticide products.
- GET /pesticides/products/¶
- Query Parameters:
page (integer)
fumigant (boolean)
california_restricted (boolean)
name (string)
- GET /pesticides/products/
- Response JSON Object:
data[] (object)
data[].prodno (integer, required)
data[].reg_number (string, required)
data[].name (string, required)
data[].fumigant (boolean, required)
data[].california_restricted (boolean, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "prodno": 1, "reg_number": "string", "name": "string", "fumigant": true, "california_restricted": true }, { "id": 1, "prodno": 1, "reg_number": "string", "name": "string", "fumigant": true, "california_restricted": true } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /pesticides/products/{product_id}/
Retrieve a single pesticide product with its associated chemicals and commodities.
- GET /pesticides/products/{product_id}/¶
- Parameters:
product_id (string, required)
- GET /pesticides/products/{product_id}/
- Response JSON Object:
data (object)
data.prodno (integer, required)
data.reg_number (string, required)
data.name (string, required)
data.fumigant (boolean, required)
data.california_restricted (boolean, required)
data.chemicals (object, required)
data.commodities (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": 1, "prodno": 1, "reg_number": "string", "name": "string", "fumigant": true, "california_restricted": true, "chemicals": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "commodities": { "id": 1, "site_code": 1, "name": 1 } } }
404 Not Found – Not found
GET /pesticides/use/
List pesticide use records from California DPR’s Pesticide Use Reporting (PUR) database.
- GET /pesticides/use/¶
- Query Parameters:
page (integer)
year (integer)
year__lt (integer)
year__lte (integer)
year__gt (integer)
year__gte (integer)
aerial_ground (string:enum)
application_date (string:date)
application_date__lt (string:date)
application_date__lte (string:date)
application_date__gt (string:date)
application_date__gte (string:date)
mtrs__boundary__geometry__distance_lt (string)
mtrs__boundary__geometry__distance_gt (string)
mtrs__boundary__geometry__bbcontains (string)
mtrs__boundary__geometry__bboverlaps (string)
county (string)
chemical (integer)
commodity (string)
product (integer)
region_id (string)
- GET /pesticides/use/
- Response JSON Object:
data[] (object)
data[].year (integer, required)
data[].use_no (integer, required)
data[].comtrs (string, required)
data[].lbs_chemical (number, required)
data[].acres_treated (number, required)
data[].application_date (string:date, required)
data[].aerial_ground (string:enum, required)
data[].county (object, required)
data[].mtrs (object, required)
data[].product (object, required)
data[].chemical (object, required)
data[].commodity (object, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "year": 1, "use_no": 1, "comtrs": "string", "lbs_chemical": 1.0, "acres_treated": 1.0, "application_date": "2020-01-01", "aerial_ground": "A", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "mtrs": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "product": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 }, "chemical": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "commodity": { "id": 1, "site_code": 1, "name": 1 } }, { "id": 1, "year": 1, "use_no": 1, "comtrs": "string", "lbs_chemical": 1.0, "acres_treated": 1.0, "application_date": "2020-01-01", "aerial_ground": "A", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "mtrs": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "product": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 }, "chemical": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "commodity": { "id": 1, "site_code": 1, "name": 1 } } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /pesticides/use/{use_id}/
Retrieve a single pesticide use record.
- GET /pesticides/use/{use_id}/¶
- Parameters:
use_id (string, required)
- GET /pesticides/use/{use_id}/
- Response JSON Object:
data (object)
data.year (integer, required)
data.use_no (integer, required)
data.comtrs (string, required)
data.lbs_chemical (number, required)
data.acres_treated (number, required)
data.application_date (string:date, required)
data.aerial_ground (string:enum, required)
data.county (object, required)
data.mtrs (object, required)
data.product (object, required)
data.chemical (object, required)
data.commodity (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": 1, "year": 1, "use_no": 1, "comtrs": "string", "lbs_chemical": 1.0, "acres_treated": 1.0, "application_date": "2020-01-01", "aerial_ground": "A", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "mtrs": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "product": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 }, "chemical": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "commodity": { "id": 1, "site_code": 1, "name": 1 } } }
404 Not Found – Not found
GET /pesticides/notice/
List upcoming pesticide application notices from CDFA’s Notice of Intent (NOI) program.
- GET /pesticides/notice/¶
- Query Parameters:
page (integer)
application_method (string)
application_method__iexact (string)
scheduled_application (string:date-time)
scheduled_application__lt (string:date-time)
scheduled_application__lte (string:date-time)
scheduled_application__gt (string:date-time)
scheduled_application__gte (string:date-time)
point__distance_lt (string)
point__distance_gt (string)
point__bbcontains (string)
point__bboverlaps (string)
county (string)
chemical (integer)
product (integer)
upcoming (boolean)
region_id (string)
- GET /pesticides/notice/
- Response JSON Object:
data[] (object)
data[].application_id (integer, required)
data[].comtrs (string, required)
data[].county (object, required)
data[].point (object, required)
data[].scheduled_application (string:date-time, required)
data[].treated_amount (number, required)
data[].treated_units (string, required)
data[].application_method (string, required)
data[].chemicals (object, required)
data[].products (object, required)
page (integer)
count (integer)
pages (integer)
has_next_page (boolean)
has_previous_page (boolean)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": [ { "id": 1, "application_id": 1, "comtrs": "string", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "point": {}, "scheduled_application": "2020-01-01T01:01:01Z", "treated_amount": 1.0, "treated_units": "string", "application_method": "string", "chemicals": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "products": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 } }, { "id": 1, "application_id": 1, "comtrs": "string", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "point": {}, "scheduled_application": "2020-01-01T01:01:01Z", "treated_amount": 1.0, "treated_units": "string", "application_method": "string", "chemicals": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "products": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 } } ], "page": 1, "count": 1, "pages": 1, "has_next_page": true, "has_previous_page": true }
GET /pesticides/notice/{notice_id}/
Retrieve a single pesticide application notice.
- GET /pesticides/notice/{notice_id}/¶
- Parameters:
notice_id (string, required)
- GET /pesticides/notice/{notice_id}/
- Response JSON Object:
data (object)
data.application_id (integer, required)
data.comtrs (string, required)
data.county (object, required)
data.point (object, required)
data.scheduled_application (string:date-time, required)
data.treated_amount (number, required)
data.treated_units (string, required)
data.application_method (string, required)
data.chemicals (object, required)
data.products (object, required)
- Status Codes:
200 OK –
OK
HTTP/1.1 200 OK Content-Type: application/json { "data": { "id": 1, "application_id": 1, "comtrs": "string", "county": { "id": 1, "name": 1, "slug": 1, "type": 1 }, "point": {}, "scheduled_application": "2020-01-01T01:01:01Z", "treated_amount": 1.0, "treated_units": "string", "application_method": "string", "chemicals": { "id": 1, "chem_code": 1, "name": 1, "cas_number": 1, "dtxsid": 1, "iarc_group": 1, "categories": 1 }, "products": { "id": 1, "prodno": 1, "reg_number": 1, "name": 1, "fumigant": 1, "california_restricted": 1 } } }
404 Not Found – Not found