NoroSTAT
| Attribute | Details |
|---|---|
| Source Name | norostat |
| Data Source | CDC NoroSTAT metadata endpoint (requires authentication) |
| Dataset Type | Surveillance (Inactive) |
| Geographic Levels | Only a specific list of full state names are permitted. See the locations output of the meta_norostat endpoint for the allowed values. |
| Temporal Granularity | Weekly (Epiweek) |
| Reporting Cadence | Inactive - No longer updated since 2020w30. |
| Temporal Scope Start | 2012w31 |
| License | Publicly Accessible US Government |
Overview
This data source provides norovirus surveillance data for US states, collected through the NoroSTAT system via the US CDC.
General topics not specific to any particular endpoint are discussed in the API overview. Such topics include: contributing, citing, and data licensing.
Note: Restricted access: This endpoint requires authentication.
Table of contents
Estimation
NoroSTAT data is derived from the CDC’s sentinel surveillance system, which tracks norovirus outbreaks in participating states. The value field represents raw outbreak counts.
Outbreak reports are aggregated weekly. No additional smoothing or statistical adjustments are applied by Delphi.
Lag and Backfill
- Lag: Historically, data was released with a lag of several weeks.
- Backfill: NoroSTAT data was subject to revisions as new reports were finalized or historical data was updated by participating states. The API tracks these revisions via the
release_date.
Limitations
- Data is only available for specific lists of participating states. Use the NoroSTAT Metadata endpoint to check available locations.
The API
The base URL is: https://api.delphi.cmu.edu/epidata/norostat/
Parameters
Required
| Parameter | Description | Type |
|---|---|---|
auth |
password | string |
epiweeks |
epiweeks (see Date Formats) | list of epiweeks |
location |
Location string. Must be an exact match from the location field of the NoroSTAT Metadata endpoint. |
string |
Response
| Field | Description | Type |
|---|---|---|
result |
result code: 1 = success, 2 = too many results, -2 = no results | integer |
epidata |
list of results | array of objects |
epidata[].release_date |
date when data was released | date (YYYY-MM-DD) |
epidata[].epiweek |
epiweek for the data point | integer |
epidata[].value |
count of norovirus outbreaks | integer |
message |
success or error message |
string |
Example URLs
NoroSTAT on 2015w01
{
"result": 1,
"epidata": [
{
"release_date": "2014-10-21",
"epiweek": 201233,
"value": 2
}
],
"message": "success"
}
Code Samples
Libraries are available for R and Python.
The following samples show how to import the library and fetch NoroSTAT data for the most recent available states for epiweek 201501.
Install the package using pip:
pip install -e "git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy"
# Import
from epidatpy import CovidcastEpidata, EpiDataContext, EpiRange
# Fetch data
epidata = EpiDataContext()
res = epidata.pvt_norostat(auth='auth_token', locations=['Minnesota, Ohio, Oregon, Tennessee, and Wisconsin'], epiweeks=[201501])
print(res)
library(epidatr)
# Fetch data
res <- pvt_norostat(auth = 'auth_token', locations = 'Minnesota, Ohio, Oregon, Tennessee, and Wisconsin', epiweeks = 201501)
print(res)
Legacy Clients
We recommend using the modern client libraries mentioned above. Legacy clients are also available for Python, R, and JavaScript.
Optionally install the package using pip(env):
pip install delphi-epidata
Otherwise, place delphi_epidata.py from this repo next to your python script.
# Import
from delphi_epidata import Epidata
# Fetch data
res = Epidata.norostat('auth_token', ['Minnesota, Ohio, Oregon, Tennessee, and Wisconsin'], [201501])
print(res['result'], res['message'], len(res['epidata']))
Place delphi_epidata.R from this repo next to your R script.
source("delphi_epidata.R")
# Fetch data
res <- Epidata$norostat(auth = "auth_token", locations = list("Minnesota, Ohio, Oregon, Tennessee, and Wisconsin"), epiweeks = list(201501))
print(res$message)
print(length(res$epidata))
<!-- Imports -->
<script src="delphi_epidata.js"></script>
<!-- Fetch data -->
<script>
EpidataAsync.norostat('nat', [EpidataAsync.range(201501, 201510)]).then((res) => {
console.log(res.result, res.message, res.epidata != null ? res.epidata.length : 0);
});
</script>