Welcome MesoWest Users

Synoptic Weather API Frequently Asked Questions

Common Weather API questions answered, so you can spend less time troubleshooting and more time building.

Here are frequently asked questions regarding the Synoptic Weather API

How do I use the Synoptic Weather API?

The Weather API is request-based. You construct a URL using:

  • A service endpoint (e.g., Time Series, Latest, Metadata, Precipitation)
  • Required parameters (such as station and time range)
  • Optional filters (variables, networks, geographic bounds, QC options)
  • Your API token

Once submitted, the API returns structured JSON data by default.

Here is an API request with the above elements:

https://api.synopticdata.com/v2/stations/latest?stid=KSLC&token=YOUR_TOKEN

Synoptic has produced a video providing a general tutorial on Synoptic Weather API queries here.

We also have a query builder to learn how to construct queries here.

How do I access my API token?

After logging into your Synoptic account or signing up for your account, navigate to your profile. Once on your “My Profile” page, go to the “Data Credentials” tab and go to the Private Key and Custom Tokens section which will display current tokens and keys as well as giving users the ability to create a key or token.

Your token must be included in all authenticated API requests. Keep it secure and do not expose it in public code repositories.

If you receive an authorization error, verify that:

  • Your token is valid
  • Your account has access to the requested API service
What types of data requests are available in the Weather API?

The Synoptic Weather API includes multiple services, including:

  • Latest Observations – Returns the most recent observation from a station or set of stations
  • Time Series – Historical observations over a time range
  • Statistics: Returns minimum, maximum, mean (average) and counts for a defined time period with Synoptic basic and advanced quality control applied. Statistics are available for the entire period of record for all stations.
  • Nearest Time – Returns the observation closest to the time requested
  • Precipitation – Returns derived precipitation totals or intervals for a requested time period and set of stations. This service encompasses Synoptic’s Advanced Precipitation Service.
  • Metadata: Returns metadata (information about stations) for a station or set of stations
  • Percentiles – Return percentile distributions for air temp, wind speed or wind gust. Percentiles are available for various distributions (depending on variable) such as full period-of-record, daily minimum or maximum, or hourly. Percentile distributions are updated monthly, and have Synoptic basic and advanced quality control applied. For an in-depth explanation of our percentiles computation, refer to Statistics and Percentiles Services Explained.

Visit our documentation page to learn more about each service here.

How are API responses structured?

The Synoptic Weather API produces data in the JSON format by default.

Weather API responses include the following:

  • STATION – Array of station objects
  • UNITS – Units for returned variables
  • SUMMARY – Response status, message, and metadata
  • QC_SUMMARY (if requested) – Quality control summary

Observation values are typically found under:

  • OBSERVATIONS – Actual weather values
  • SENSOR_VARIABLES – Sensor metadata and reporting history

All timestamps are returned in ISO 8601 format.

For more on JSON output format visit our documentation page here.

What is the difference between SENSOR_VARIABLES and OBSERVATIONS?

OBSERVATIONS is simply the element which holds variable data and time stamps.

SENSOR_VARIABLES provides a list of names of the variables returned from this station. This summarizes the variables which will be found in the OBSERVATIONS element.

How do I request specific stations?

You can select stations using a variety of parameters, including:

Station ID (stid), state, country, county, vars, network, radius, and much more. To get more information on station selection parameters, navigate to the Station Selection Parameters page in our documentation here.

You can also exclude values using ! before a parameter (example: exclude a specific station).

Multiple selection filters can be combined in a single request.

Heres an example excluding a station:
https://api.synopticdata.com/v2/stations/latest?stid=!KSLC&token=YOUR_TOKEN

Heres an example excluding multiple stations:
https://api.synopticdata.com/v2/stations/latest?stid=!KSLC,!KDEN&token=YOUR_TOKEN

How do I request data within a geographic area?

Synoptic offers the following methods via our Station Selection Parameters:

Radius search – Return stations within a specified distance of a coordinate or station.

Bounding box (bbox) – Define a rectangular geographic region.

Here’s an example of a radius search query:
https://api.synopticdata.com/v2/stations/latest?radius=50,40.77,-111.85&vars=air_temp&token=YOUR_TOKEN

Here’s an example of a bbox (bounding box) query:
https://api.synopticdata.com/v2/stations/latest?bbox=-112,40,-111,41&vars=air_temp&token=YOUR_TOKEN

How do I filter stations by variables?

Use the vars parameter to request stations that report specific variables such as:

  • air_temp
  • wind_speed
  • precipitation

By default, the API returns stations reporting any listed variable.

To require stations reporting all listed variables, use varsoperator=and.

Here’s an example query for filtering stations by variables:
https://api.synopticdata.com/v2/stations/latest?vars=air_temp,wind_speed&token=YOUR_TOKEN

How does the Precipitation Service work?

The Precipitation Service provides accumulated rainfall totals. Output depends on the precipitation mode (pmode):

  • Totals – Total accumulation over a specified time period
  • Intervals – Accumulation broken into multiple time intervals
  • Last – Accumulation over the most recent specified hours

Precipitation results include total amount, reporting timestamps, and observation counts.

Here are some example queries of precipitation:

Intervals mode:
https://api.synopticdata.com/v2/stations/precipitation?stid=KSLC&pmode=intervals&start=2026-02-01T00:00:00Z&end=2026-02-01T23:59:00Z&token=YOUR_TOKEN

Last mode example (accumulation for last 48 hours):
https://api.synopticdata.com/v2/stations/precipitation?stid=KSLC&pmode=last&accum_hours=48&token=YOUR_TOKEN

What does PERIOD_OF_RECORD mean?

PERIOD_OF_RECORD defines the earliest and most recent observation timestamps available for:

  • A station
  • A specific sensor

It represents the full historical range of data available in the system from when the station was ingested into the Synoptic Platform.

How do I retrieve the observation closest to a specific time?

Use Nearest Time with:

  • ATTIME – The timestamp you are targeting
  • WITHIN – The number of minutes allowed around that timestamp

The API returns the closest available observation within that window.

Here is an example of a query to fetch the nearest time within 15 minutes for station KSLC at 3:00pm UST:
https://api.synopticdata.com/v2/stations/nearest?stid=KSLC&ATTIME=2026-02-27T15:00:00Z&WITHIN=15&vars=air_temp&token=YOUR_TOKEN

What do the API response codes mean?

Common response codes include:

  • 1 – Success
  • 2 – No results found
  • -1 – Invalid parameter
  • 403 – Authorization error
  • 404 – Service endpoint not found
  • 500 – Internal server error

Full details are provided in the SUMMARY object of each response.

How does Quality Control (QC) work in the API?

When QC is enabled, the API provides the following information:

  • QC checks applied
  • Total flagged observations
  • Percentage of flagged observations
  • QC source and short names

For detailed time ranges of flagged data, use the QC Segments service. This allows you to see exactly when and which sensors were flagged.

What format are timestamps returned in?

All timestamps are returned in ISO 8601 format, including date, time, and time zone offset.

Time Series services return arrays of timestamps that align with arrays of observation values. These values can be returned in the local timezone of the observations by setting the obtimezone parameter as local.

Can I exclude specific stations, networks or states from a request?

Yes. Selection parameters support exclusion using the ! operator.

For example:

Exclude a station

The query below returns the latest temperature for stations in the ASOS network except KSLC:
https://api.synopticdata.com/v2/stations/latest?network=1&stid=!KSLC&vars=air_temp&token=YOUR_TOKEN

Exclude a state

The query below returns returns the latest temperature for stations in the ASOS network except those in Utah:
https://api.synopticdata.com/v2/stations/latest?network=1&state=!UT&vars=air_temp&token=YOUR_TOKEN

Exclude a network

This query returns the latest temperature for stations in Utah, but excludes all stations in the ASOS network:
https://api.synopticdata.com/v2/stations/latest?state=UT&network=!1&vars=air_temp&token=YOUR_TOKEN

This allows precise control over your dataset, and the data returned!

The data returned by the API looks incorrect or is missing — what should I check?

If an API response contains unexpected, missing, or incorrect values, work through the following:

  1. Check the QC_FLAGGED field in the response — a flagged value indicates a known quality control issue on that observation
  2. Use the Metadata endpoint to confirm the station is active: https://api.synopticdata.com/v2/stations/metadata?stid=YOUR_STID&token=YOUR_TOKEN
  3. Double-check your start, end, or recent time parameters — an incorrect range is a common cause of empty responses
  4. Verify that the variable you requested (e.g., vars=snow_depth) is reported by that station

If the issue persists after the above checks, submit a support ticket with the full API request URL, the station ID, the variable name, and the time range so our team can investigate.

How does the Push Streaming API work and how do I get access?

The Push Streaming service delivers real-time weather observations to your application as data arrives, via WebSocket. This eliminates the need to poll the REST API and is designed for latency-sensitive use cases. To get started:

  1. Confirm your account plan includes Push Streaming — contact support if you are unsure
  2. Request streaming credentials via a support ticket
  3. Connect your client to the stream endpoint using a WebSocket library

For testing Push Streaming or discussing latency requirements and pricing, contact support directly.

How do I manage API tokens or add teammates to my account?

Log into your Synoptic account, navigate to your profile, and open the “Data Credentials” tab. From there you can view, create, or revoke tokens and private keys. Your token must be included in all API requests.

To add or remove team members who need API access, submit a support ticket with the relevant email addresses. If your token is returning an authorization error, verify that:

  • The token is copied correctly with no extra spaces
  • Your account plan has access to the endpoint or dataset being requested

Ready to make smarter weather decisions?

For even more information on the Synoptic weather API please take a look at our documentation page located here!