Skip to main content
Skip table of contents

Quality Control Segments

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

Request Format

A QC Segments request is an HTTP URL with the following form:

NONE
https://api.synopticdata.com/v2/stations/qcsegments

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.

  • token (required), Your application’s API token. This is used to identify who is requesting API data. You are never required to use multiple tokens, but you can use as many as you need. Learn more in our tokens overview.

  • Any number of station selection parameters (optional). Including no station selections will return results for all stations. This can result in extremely large results for services that support it.

Station Selection Parameters

These selectors individually or combined to target the desired stations.

Exclusion Operator

Selectors noted as (excludable) may be specified with a ! preceding a value to remove/exclude from the selection from a result set. So stid=!KSLC would prevent KSLC from returning in a query. This should be used in combination with different selectors. Remember to only include any given selector once.

stid

(string, excludable), Single or comma separated list of SynopticLabs station IDs. Use a ! before any value to exclude matching stations. Example: stid=mtmet,kslc,fps. Try it Now

state

(string, excludable), Single or comma separated list of abbreviated 2 character states. If country is not included, default is United States (US). Use a ! before any value to exclude matching stations. Example: state=ut,wy,dc.

country

(string, excludable), Single or comma separated list of abbreviated 2 or 3 character countries. Use a ! before any value to exclude matching stations. Example: country=us,ca,mx.

nwszone

(string, excludable), Single or comma separated list of National Weather Service Zones. Use a ! before any value to exclude matching stations. Example: nwszone=UT003,CA041.

nwsfirezone

(string, excludable), Single or comma separated list of National Weather Service Fire Zones. Use a ! before any value to exclude matching stations. Example: nwsfirezone=LOX241

cwa

(string, excludable), Single or comma separated list of National Weather Service County Warning Areas. Use a ! before any value to exclude matching stations. Example: cwa=LOX.

gacc

(string, excludable), Single or comma separated list of Geographic Area Coordination Centers. Use a ! before any value to exclude matching stations. Example: gacc=GB.

subgacc

(string, excludable), Single or comma separated list of Sub Geographic Area Coordination Centers. Use a ! before any value to exclude matching stations. Example: subgacc=EB07.

county

(string, excludable), Single or comma separated list of counties. Use the state parameter to filter by state in the case of duplicate county names (i.e. “King”). Use a ! before any value to exclude matching stations. Example: county=king&state=wa.

vars

(string), Single or comma separated list of sensor variables found here. The request will return all stations matching at least one of the variables provided. This is useful for filtering all stations that sense only certain variables, such as wind speed, or pressure. Do not specify vars twice in a query string. Some web services use this argument to adjust what information is delivered. Example: vars=wind_speed,pressure. Try it Now

varsoperator

(string), Define how &vars is understood. or (the default) means any station with any variable in the list is used. and means a station must report every variable to be included. Example: varsoperator=and.

network

(number, string, excludable), Single or comma separated list of network IDs or short names. The ID can be found be using the Networks service and are also listed here. Use a ! before any value to exclude specific networks from a result set. Example: network=153 or network=uunet,raws.

radius

(string), A comma separated list of three values of the type [latitude,longitude,miles] or [stn_id,miles]. Coordinates are in decimal degrees. Returns all stations within radius of the point (or station, given by the station ID) and provides the DISTANCE of the station from given location with units of miles. Adding limit=n to the query will limit the number of returned stations to n stations, and will order the stations by DISTANCE. Some examples are: radius=41.5,-120.25,20, radius=wbb,10, radius=41.5,-120.25,20&limit=10.

bbox

(string), A bounding box defined by the lower left and upper right corners in decimal degrees latitude and longitude coordinates, in the form of [lonmin,latmin,lonmax,latmax]. Recall that for regions involving the western and southern hemispheres that the coordinates are negative values (e.g., 120 W is -120, 20 S is -20). Example: bbox=-120,40,-119,41.

Bounding Box Thinning

A new feature allows you to use the API to thin the returned station set within a bounding box by providing some additional arguments. These arguments only take effect when the bbox parameter is used:

height

(number) the height of the map viewport in pixels

width

(number) the width of the map viewport in pixels

spacing

(number) the preferred number of pixels a station on the map should consume

networkimportance

(numbers, comma-separated) a list of comma separated network IDs that will be considered in the order provided. When there is a collision of stations within the defined “spacing” area, any station matching the list of preferred networks will be shown over any other.

status

(string), A value of either active or inactive returns only stations that are currently set as active in the archive. By default, omitting this parameter will return all stations. Example: status=active.

complete

(1, 0 [default]), A value of 1 or 0. When set to 1 an extended list of metadata attributes for each returned station is provided. This result is useful for exploring the zones and regions in which a station resides. Example: complete=1.

fields

(string), Case-insensitive comma-separated list of metadata attributes to include in the output response. Default is to include all attributes. Only works with attributes defined in the default metadata set (e.g. attributes shown via complete=1 cannot be selected). Example: fields=stid,name.

  • Either start and end, or recent (one is required but not both)

    • start & end, Defines the start and end time of the request with the form of YYYYmmddHHMM. Where YYYY is year, mm is month, dd is day, HH is hour, and MM is minutes. The start parameter must be used with the end parameter. For example: start=201306011800&end=201306021215.

      All times are requested in UTC, but may be returned in either UTC or local time format for each station. See the obtimezone parameter.

    • recent, Indicates the number of minutes to return, previous to the current time. For example: recent=120 will return the last two hours of observations.

Optional Parameters

  • inside (1, 0 [default]), Requires the QC segment start within the requested time span. Example: inside=1.

  • obtimezone (UTC [default], local), Indicates if the time zone of the response is in UTC or the local timezone of the station. Sets the timezone applied to the observation output (input times associated with start and end are always UTC). Example: obtimezone=local

  • showemptystations (0 [default], 1), Indicates if stations with no observations will be returned. Setting to 1 will return any station meeting the defined time period, variables, and geographic or network parameters, even if there are no observation data available.

  • qc_checks ([flag name], [flag source], all) defines a list of data checks applied to data values. The settings of other QC parameters determines how the data and data checks are returned.

    • all will return any data check in our system.

    • “flag name” allows the targeting of a flag by name or a list (comma separated) of flags.

    • “flag source” allows targeting a data check provider i.e. synopticlabs for SynopticLabs.

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

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

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

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

Response Format Parameters

  • output (json [default], xml, geojson), Indicates the response format of the request. It’s recommended to use the JSON format which there are well supported parsing libraries in all major languages.

    • GeoJSON will only return the best guess sensor if the station has multiple sensors of the same type.

Request Response

JSON Format

The QC Segments 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:

JSON
{
  QC_SHORTNAMES: {
    18: "ma_stat_cons_check"
  },
  QC_SOURCENAMES: {
    18: "MADIS"
  },
  SUMMARY: {
    DATA_QUERY_TIME: "110.540151596 ms",
    RESPONSE_CODE: 1,
    RESPONSE_MESSAGE: "OK",
    METADATA_RESPONSE_TIME: "127.150058746 ms",
    DATA_PARSING_TIME: "1.11985206604 ms",
    VERSION: "v2.21.0",
    TOTAL_DATA_TIME: "111.660003662 ms",
    NUMBER_OF_OBJECTS: 1,
    FUNCTION_USED: "qc_segment_parser"
  },
  STATION: [
    {
      STATUS: "ACTIVE",
      MNET_ID: "195",
      PERIOD_OF_RECORD: {
        start: "2016-12-14T16:52:00Z",
        end: "2023-08-01T22:57:00Z"
      },
      ELEVATION: "3885",
      NAME: "ARNOLD CA",
      QC: [
        {
          start: "2018-01-21T17:00:00Z",
          qc_flag: 18,
          sensor: "air_temp_qc_1",
          end: "2018-01-21T17:00:00Z",
          is_open: false
        }
      ],
      STID: "ARLC1",
      SENSOR_VARIABLES: {
        air_temp: {
          air_temp_qc_1: { }
        }
      },
      ELEV_DEM: "3818.9",
      LONGITUDE: "-120.36000",
      UNITS: {
        position: "m",
        elevation: "ft"
      },
      STATE: "CA",
      RESTRICTED: false,
      LATITUDE: "38.23000",
      TIMEZONE: "America/Los_Angeles",
      ID: "42541"
    }
  ],
  QC_NAMES: {
    18: "MADIS Spatial Consistency Check"
  }
}
  • SUMMARY{}

    • NUMBER_OF_OBJECTS, (always returned) is a integer value of the number of stations returned.

    • RESPONSE_CODE, (always returned) is a numerical code indicating the status of the request.

      • “1” = “OK”

      • “2” = “Zero Results”

      • “200” = “Authentication failure”

      • “400” = “Violates a rule of the API”

    • RESPONSE_MESSAGE, (always returned) is a string explaining the RESPONSE_CODE.

    • RESPONSE_TIME, (always returned) server time to process the request.

  • STATION[]

    • SENSOR_VARIABLES[], summary of variables in the OBSERVATIONS element.

    • QC[], contains the QC segments.

      • start, start of segment.

      • end: end time of segment. If the segment is open, the end time will be time of query.

      • qc_flag, QC check ID (see QC Types).

      • sensor, sensor name and instance.

      • is_open, is the segment open or closed.

  • QC_SHORTNAMES{}, key/value pairs of QC flag IDs to short names.

  • QC_NAMES{}, key/value pair of QC flag IDs to flag’s formal name.

  • QC_SOURCENAMES{}, key/value pairs of QC flag IDs to provider name.

Note: The data in this example is simulated.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.