IEM Web Services and APIs
Disclaimer: All of these services are provided as-is and without warranty. You are free to use these services for any lawful purpose (including commercial whereby your company makes lots of money using these) and please do not sue us if they do not work as you expect or if one of them breaks during your critical time of need.
The primary goal of this website is to make data freely available in an open manner. This page presents details the IEM's various Web Services and Application Programming Interfaces (API). These services are structured into four categories.
IEM API v1 Docs represent a more formal API using the wonderful FastAPI framework. This API generates JSON Table Schema responses and is more geared toward smallish requests that can be serviced within a second or two. The source code for these services is found within the iem-web-services repo.
(Geo)-JSON Services represent a hodge-podge of services invented over the past many years that are not necessarily well thought out and nor structured. They individually have help pages that attempt to explain how to use them. The source code for these services is found with the main iem repo.
Scriptable CGI Services represent a collection of backends that often service various bulk data download portals. These services are heavily trafficked and typically emit simple CSV responses. None of these will do JSON, often due to various lame constraints. The source code for these services is found with the main iem repo.
OGC Services represent a collection of Open Geospatial Consortium services. The source code for these services is found with the main iem repo.
But first, perhaps there are better alternatives!
The following is a list of other web service providers. They all do a better job than this website does. Some of these are commercial and this listing should not be implied as an endorsement. Of course, you can just search google for Weather API :)
(Geo)-JSON Services
- Climodat State Climatology
- Climodat Day Climatology
- Current Obs
- COOP and other data valid @ 7 AM
- HADS/DCP Reporting SHEF Vars
- Archive IEM Web Products
- Network GeoJSON
- Network Identifiers
- pyIEM reference data
- Recent "Interesting" METAR Reports
- Station Metadata Changes
- Tile Map Services metadata
- Webcam Archive Metadata: GeoJSON or JSON
- CF6 Data: GeoJSON or JSON
- CLI Data: GeoJSON or JSON
- Local Storm Reports
- NEXRAD Storm Attributes
- Impact Based Warning Tags
- NEXRAD/TWDR Archive Metadata
- NEXRAD/TWDR Current Metadata
- SPC/WPC Outlook Progression by Point by Date
- SPC Mesoscale Discussions
- SPC Outlooks
- SPC Outlooks by Size
- SPC Watches
- Sounding/RAOB Data
- Special Weather Statements (SPS)
- Special Weather Statements (SPS) by Point
- Text Data
- Text Product Metadata Search
Scriptable CGI Services
Some of the IEM data services are not ammenable to being used within a API
service that aims for sub-second response times. These services also consume
a lot of resources and are not as scalable. As such, we have a few services
rooted within /cgi-bin/
style 2000s era web services. There are primative
help pages for these services:
- ASOS/METAR Data (/cgi-bin/request/asos.py)
- ASOS 1 Minute NCEI Data (/cgi-bin/request/asos1min.py)
- ASOS Satellite + Cloud Product (/cgi-bin/request/scp.py)
- AWC Graphical Airmets (/cgi-bin/request/gis/awc_gairmets.py)
- Center Weather Advisories (/cgi-bin/request/gis/cwas.py)
- HADS/DCP/SHEF Data (/cgi-bin/request/hads.py)
- Gibson Ridge Range Ring Placefile (/cgi-bin/request/grx_rings.py)
- HML Processed Data (/cgi-bin/request/hml.py)
- Hourly Precip (/cgi-bin/request/hourlyprecip.py)
- Iowa NASS (/cgi-bin/request/nass_iowa.py)
- Iowa State Soil Moisture Network (/cgi-bin/request/isusm.py)
- IEM Climodat stations (/cgi-bin/request/coop.py)
- IEM Computed Daily Summaries (/cgi-bin/request/daily.py)
- Local Storm Reports (/cgi-bin/request/gis/lsr.py)
- METARs (/cgi-bin/request/metars.py)
- Miscellaneous/Other (/cgi-bin/request/other.py)
- Model Output Statistics (/cgi-bin/request/mos.py)
- NLAE Flux Stations (/cgi-bin/request/nlaeflux.py)
- NEXRAD Storm Attributes (/cgi-bin/request/gis/nexrad_storm_attrs.py)
- NWS Text Data (/cgi-bin/afos/retrieve.py)
- NWS Watch/Warning/Advisories (/cgi-bin/request/gis/watchwarn.py)
- Pilot Reports PIREPS (/cgi-bin/request/gis/pireps.py)
- RASTER 2 netcdf (/cgi-bin/request/raster2netcdf.py)
- RAOB Soundings (/cgi-bin/request/raob.py)
- Roadway Weather Information (RWIS) (/cgi-bin/request/rwis.py)
- Soil Climate Analysis Network (/cgi-bin/request/scan.py)
- SIGMETs (/cgi-bin/request/gis/sigmets.py)
- SPC MCD (/cgi-bin/request/gis/spc_mcd.py)
- SPC/WPC Outlooks (/cgi-bin/request/gis/spc_outlooks.py)
- SPC Convective Watches (/cgi-bin/request/gis/spc_watch.py)
- Special Weather Statements SPS (/cgi-bin/request/gis/sps.py)
- Talltowers (/cgi-bin/request/talltowers.py)
- SPC Watch by County (/cgi-bin/request/gis/watch_by_county.py)
- Temp Winds Aloft (/cgi-bin/request/tempwind_aloft.py)
- Terminal Aerodome Forecast TAF (/cgi-bin/request/taf.py)
- WPC Mesoscale Precip Discussions (/cgi-bin/request/gis/wpc_mpd.py)
- Windrose Generator (/cgi-bin/mywindrose.py)
API Stability?
In general, we do not try to break things but bugs happen. As always, please email us with any concerns you have. We are extremely responsive to email :)