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

  1. Estimation
  2. Lag and Backfill
  3. Limitations
  4. The API
    1. Parameters
      1. Required
    2. Response
  5. Example URLs
    1. NoroSTAT on 2015w01
  6. Code Samples
    1. Legacy Clients

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

https://api.delphi.cmu.edu/epidata/norostat/?auth=...&location=Minnesota%2C%20Ohio%2C%20Oregon%2C%20Tennessee%2C%20and%20Wisconsin&epiweeks=201233

{
  "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>