Developers
Mesonet API
  • Getting Started
  • Reference
  • Explorer
  • Examples
  • Pricing
  • Time Series Service

    Mesonet API Services

    Returns data for a station or set of stations based on a time span

    Time Series API

    Request Format

    A Time Series request is an HTTP URL with the following form:

    https://api.synopticdata.com/v2/stations/timeseries
    

    Acquiring data from this web service requires certain parameters. When encoding URLs, all parameters are separated using the ampersand (&) character and their value is indicated by an equal sign (=). Below is a list of accepted parameters.

    Optional Parameters

    The following example will request all the stations in Utah with an observation within the last two hours:

    https://api.synopticdata.com/v2/stations/timeseries?state=ut&recent=120&token=YOUR_TOKEN_HERE
    

    The following example will request only the air temperature for KSLC (Salt Lake City Airport) on January 3, 2015:

    https://api.synopticdata.com/v2/stations/timeseries?stid=kslc&start=201501030000&end=201501032359&vars=air_temp&token=YOUR_TOKEN_HERE
    

    Response Format Parameters

    Data Checks and Quality Control

    By default, the API does not return data that has been flagged as non-plausible by the Synoptic Range Check, e.g. a temperature value of 200C. It does provide a series of URL arguments that allow the retrieval of removed data as well as their flags.

    If the qc parameter is omitted then the API will return data while assuming the following QC parameters: qc=on, qc_remove_data=on, qc_flags=off and qc_checks=sl_range_check. Below is an explanation of parameters that control the application of data checks (qc) to the data.

    Some common examples of modifying the default QC parameters are:

    Request Response

    JSON Format

    The Time Series service will return its results in a single organized and self describing JSON object. At a minimum, every request will return a JSON object with a SUMMARY field.

    An example JSON response would be:

    {
      "UNITS": {
        "air_temp": "Celsius"
      },
      "QC_SUMMARY": {
        "QC_TESTS_APPLIED": ["sl_range_check"],
        "TOTAL_OBSERVATIONS_FLAGGED": 0,
        "PERCENT_OF_TOTAL_OBSERVATIONS_FLAGGED": 0
      },
      "STATION": [
        {
          "STATUS": "ACTIVE",
          "MNET_ID": "1",
          "LONGITUDE": "-111.96503",
          "LATITUDE": "40.77069",
          "TIMEZONE": "America/Denver",
          "ID": "53",
          "STATE": "UT",
          "PERIOD_OF_RECORD": {
            "start": "1970-01-01T00:00:00Z",
            "end": "2017-06-22T18:20:00Z"
          },
          "ELEVATION": "4226",
          "NAME": "Salt Lake City, Salt Lake City International Airport",
          "QC_FLAGGED": false,
          "STID": "KSLC",
          "SENSOR_VARIABLES": {
            "date_time": { "date_time": {} },
            "air_temp": {
              "air_temp_set_1": {
                "position": ""
              }
            }
          },
          "OBSERVATIONS": {
            "date_time": [
              "2015-01-03T00:00:00Z",
              "2015-01-03T00:05:00Z",
              "2015-01-03T00:10:00Z",
              "2015-01-03T00:15:00Z",
              "2015-01-03T00:20:00Z"
            ],
            "air_temp_set_1": [-5.6, -5.6, -6.1, -6.1, -6.7]
          }
        }
      ],
      "SUMMARY": {
        "RESPONSE_CODE": 1,
        "RESPONSE_MESSAGE": "OK",
        "TOTAL_DATA_TIME": "12.0379924774 ms",
        "NUMBER_OF_OBJECTS": 1
      }
    }