
Sharing Your Data: WUnderground, PWSweather, WeatherCloud & CWOP
How to register and publish your weather station data to Weather Underground, PWSweather, WeatherCloud, and CWOP β with configuration examples and data format requirements.
Running a weather station for your own benefit is satisfying. Contributing your data to a shared network is something else entirely β it turns your backyard instruments into a node in a global observation mesh, visible to forecasters, researchers, and neighbours who want to know if they need an umbrella. The data you publish does not just sit in a database; it fills gaps between official observation sites, improves forecast models through ground truth, and occasionally catches microclimatic events that the nearest airport METAR misses by twenty kilometres.
I have been publishing to Weather Underground, CWOP, and PWSweather since the early days of my station, and added WeatherCloud a few years later when they opened their API. Each platform has its own registration quirks, data format expectations, and community flavour. This guide walks you through setting up all four, so you can decide which networks suit your goals β or, more likely, publish to all of them simultaneously, because the cost of doing so is nearly zero once the first one is configured.
For the broader picture of getting your data from station to web, start with the publishing overview. If your publishing pipeline involves FTP uploads to your own site alongside network submissions, the FTP publishing guide covers that workflow.
Quick-Answer Summary
| Network | Registration | Update Method | Typical Interval | Primary Audience |
|---|---|---|---|---|
| Weather Underground | Web sign-up, station ID assigned | HTTP GET to API endpoint | 5β60 seconds | General public, hobbyists |
| PWSweather | Web sign-up, station ID assigned | HTTP GET to API endpoint | 1β30 minutes | Hobbyists, regional networks |
| WeatherCloud | Web sign-up, device ID + API key | HTTP POST or device integration | 10 minutes | European hobbyists, device ecosystem |
| CWOP | Registration with call sign | APRS-IS packet submission | 5β15 minutes | NWS forecasters, MADIS, researchers |
If you want maximum scientific impact, CWOP is the priority β its data feeds into NOAA's MADIS quality-control system and is used by National Weather Service forecasters. If you want community visibility and a public-facing map pin, Weather Underground has the largest audience. PWSweather and WeatherCloud round out the portfolio.
Prerequisites
- A working weather station with software that supports network uploads: GraphWeather, WeeWX, CumulusMX, Ecowitt firmware, or Ambient Weather firmware.
- An internet connection from the station PC (or gateway device).
- Station metadata: latitude, longitude, elevation (above mean sea level), and station type (manufacturer and model). Every platform requires these during registration.
- For CWOP: familiarity with the APRS packet format is helpful but not required β most station software abstracts it. The METAR and CWOP basics guide covers the underlying standards.
Weather Underground
Registration
Create a Weather Underground account, then navigate to the "My Weather Station" section and select "Add New Station." You will provide:
- Station name and location (latitude, longitude).
- Elevation above sea level β this is critical because WU uses it to calculate sea-level pressure from your station pressure. Get it right to within Β±3 metres. A GPS reading is sufficient; a surveyed benchmark is better.
- Hardware type and indoor/outdoor configuration.
WU assigns you a Station ID (format: KSTATECI123) and an API Key. Both are needed for uploads. Store the API key securely β the security guide covers API key management.
Configuration
Most station software has a built-in Weather Underground upload module. The configuration requires:
- Station ID (e.g.,
KSTATECI123) - API Key (a long alphanumeric string)
- Update interval (WU accepts updates as frequently as every 5 seconds for RapidFire mode, or every 60 seconds for standard mode)
In WeeWX, the weewx.conf entry looks like:
[StdRestful]
[[Wunderground]]
station = KSTATECI123
password = your_api_key
rapidfire = true
GraphWeather has a dedicated Weather Underground panel in its publishing settings β enter the station ID and key, select the update interval, and enable the upload.
Data Format
WU expects HTTP GET requests to its API endpoint with parameters like tempf (temperature in Fahrenheit), humidity, baromin (pressure in inches of mercury), windspeedmph, and so on. Yes, imperial units. If your station logs in metric, your software must convert before submission. Every major station package handles this conversion automatically.
A typical upload URL looks like:
/weatherstation/updateweatherstation.php?ID=KSTATECI123&PASSWORD=apikey&dateutc=2026-04-10+07:30:00&tempf=54.3&humidity=68&baromin=30.12&windspeedmph=7.8&winddir=225&rainin=0.00&dailyrainin=0.12&action=updateraw
WU responds with success or an error message. If you see INVALIDPASSWORDID, your station ID and API key do not match β re-check both.
PWSweather
Registration
PWSweather (now operated under the AerisWeather umbrella) has a straightforward registration process. Create an account, add a station, provide location and elevation, and receive a Station ID and API Key.
Configuration
PWSweather uses a nearly identical API format to Weather Underground β the endpoint differs, but the parameter names are the same. Many station packages treat PWSweather as a "clone" of the WU protocol, which means configuration is almost identical.
In WeeWX:
[StdRestful]
[[PWSweather]]
station = STATIONID
password = your_api_key
GraphWeather and CumulusMX both have PWSweather-specific upload options in their publishing settings.
Update Interval
PWSweather does not support RapidFire mode. A 1β10 minute interval is typical. Pushing more frequently than once per minute may trigger rate limiting, though PWSweather is generally lenient.
WeatherCloud
Registration
WeatherCloud uses a device-centric model. Create an account, then register your device (specifying manufacturer, model, and firmware version). WeatherCloud assigns a Device ID and an API Key.
Configuration
WeatherCloud supports two upload methods:
- Direct device integration: Some Ecowitt and Ambient Weather gateways have native WeatherCloud support. Enter the Device ID and API Key in the gateway firmware settings.
- HTTP POST from station software: WeeWX supports WeatherCloud via a community extension. CumulusMX has built-in support. GraphWeather can be configured to POST to the WeatherCloud API endpoint.
Data Format
WeatherCloud uses its own API format with metric units β a refreshing change from WU's imperial-only requirement. Parameters include temp (Β°C Γ 10, so 22.5 Β°C is sent as 225), hum (percentage), bar (hPa Γ 10), and similar scaled integers. The scaling catches people β if you send raw float values, every reading will be off by an order of magnitude.
Update Interval
WeatherCloud expects updates every 10 minutes. More frequent pushes are silently discarded; less frequent pushes result in gaps on the WeatherCloud dashboard.
CWOP
CWOP (Citizen Weather Observer Program) is the network with the most scientific impact. Data submitted to CWOP feeds into NOAA's Meteorological Assimilation Data Ingest System (MADIS), where it undergoes automated quality control and becomes available to National Weather Service forecasters and researchers.
Registration
CWOP registration involves requesting a call sign. If you hold an amateur radio licence, use your ham call sign. If not, CWOP assigns a CW identifier (format: CW1234 or DW1234 for non-US stations). Submit a registration request with your station coordinates, elevation, and equipment description.
Configuration
CWOP data is submitted as APRS (Automatic Packet Reporting System) packets over the APRS-IS network. Your station software formats the observation into an APRS weather packet and sends it to an APRS-IS server (e.g., cwop.aprs.net on port 14580).
In WeeWX:
[StdRestful]
[[CWOP]]
station = CW1234
server = cwop.aprs.net
port = 14580
interval = 600
GraphWeather supports CWOP upload natively β enter the call sign in the CWOP publishing panel and set the interval to 10 minutes (600 seconds). CumulusMX also has built-in CWOP support.
APRS Packet Format
A CWOP weather packet looks like this:
CW1234>APRS,TCPIP*:@101230z4836.00N/00230.00E_225/008g015t054r001p010P024h68b10184
Breaking it down:
CW1234>APRS,TCPIP*:β source call sign, destination, and path.@101230zβ day and time (UTC).4836.00N/00230.00Eβ latitude and longitude in degrees and decimal minutes._225β wind direction (degrees)./008β wind speed (mph, one-minute average).g015β gust speed (mph).t054β temperature (Fahrenheit).r001β rain last hour (hundredths of an inch).p010β rain last 24 hours.P024β rain since midnight.h68β humidity (percent).b10184β barometric pressure (tenths of hPa/mb).
Yes, CWOP uses imperial units for wind and temperature but metric for pressure, and a peculiar hundredths-of-an-inch scale for rain. This is the APRS weather packet standard, inherited from amateur radio conventions. Your station software handles the conversion β you should never need to construct these packets by hand.
The METAR and CWOP basics guide unpacks the format in more detail and explains how CWOP data is quality-checked by MADIS.
Data Quality Requirements
CWOP/MADIS runs automated quality control on every submission. Your data may be flagged or rejected if:
- Position is wrong. Even a single-digit error in latitude or longitude places your station kilometres from its actual location, and MADIS compares your readings against nearby stations. A significant outlier at an incorrect position gets flagged.
- Pressure is uncorrected. CWOP expects station-level pressure. MADIS applies its own elevation correction. If you send sea-level-corrected pressure, the correction is applied twice, producing obviously wrong values.
- Temperature is stuck. A sensor reporting the same value for hours triggers a "stuck sensor" flag. This happens with dying thermistors or USB connection drops where the software repeats the last known value.
The station data sanity checks guide covers how to validate your data before it reaches any network, preventing embarrassing rejections.
Comparing the Networks
| Feature | Weather Underground | PWSweather | WeatherCloud | CWOP |
|---|---|---|---|---|
| Map visibility | Yes, very popular | Yes, smaller audience | Yes, Europe-focused | Indirect (via MADIS) |
| Data retention | Years (varies by plan) | Years | Years | Permanent (MADIS archive) |
| API access | Paid tiers | Free/paid tiers | Limited free | Free (MADIS) |
| Scientific use | Limited | Limited | Limited | Primary purpose |
| Community | Large, global | Moderate | Growing, Europe-heavy | Niche, technically minded |
| Quality control | Basic | Basic | Basic | Rigorous (MADIS QC) |
For maximum reach, publish to all four. The overhead is negligible β each upload is a single HTTP request or APRS packet, consuming trivial bandwidth and processing time.
Configuring Simultaneous Multi-Network Publishing
Most station software supports multiple simultaneous network uploads:
- GraphWeather: Each network has its own panel in the publishing settings. Enable all four, configure credentials, and set individual intervals.
- WeeWX: The
[StdRestful]section inweewx.confsupports all four networks as subsections. Enable each one and they all run in parallel. - CumulusMX: The "Internet" settings tab has dedicated sections for WU, PWSweather, WeatherCloud, and CWOP.
- Ecowitt gateways: Support WU, WeatherCloud, and a "Customized" endpoint natively. CWOP requires an intermediary (WeeWX or a custom script).
If you also publish to your own website via FTP, the uploads run alongside network submissions without conflict. The FTP publishing guide covers that parallel workflow.
Troubleshooting Rejected Uploads
Weather Underground: "INVALIDPASSWORDID"
The station ID and API key do not match. Re-copy both from your WU account settings. Note that the API key is case-sensitive.
PWSweather: No Data Appearing
PWSweather can take up to 30 minutes to display the first data point after registration. If data is still missing after an hour, check the API response β a 200 OK response means the data was accepted; anything else indicates a parameter or authentication error.
WeatherCloud: Values Off by 10Γ
You are sending unscaled values. WeatherCloud expects integers scaled by 10 (temperature Γ 10, pressure Γ 10). Check your software's WeatherCloud configuration for a "scaling" or "multiplier" option.
CWOP: Station Not Appearing on Map
New CWOP registrations take 24β48 hours to propagate through MADIS. If your station still does not appear after two days, verify the APRS packet format using the APRS-IS raw feed viewer, and confirm your call sign was accepted during registration.
Common Mistakes
Wrong station ID format. WU uses
KSTATECI123, CWOP usesCW1234or a ham call sign. Entering a WU ID in the CWOP configuration (or vice versa) is a surprisingly common error.Pushing too frequently. WU RapidFire allows 5-second updates. CWOP and WeatherCloud do not. Pushing CWOP data every 30 seconds clutters the APRS network and may get your call sign flagged. Stick to 10-minute intervals for CWOP and WeatherCloud.
Forgetting elevation for pressure correction. If your station reports sea-level pressure but the network expects station pressure (or vice versa), your barometric readings will be systematically wrong. WU expects station pressure; CWOP expects station pressure. Check each network's documentation.
Not validating data before publishing. A stuck sensor or a miscalibrated rain gauge does not just affect your own records β it injects bad data into shared networks. Run the checks in the station data sanity checks guide before enabling network uploads.
Reusing API keys across networks. Each network issues its own key. Do not try to use a WU key on PWSweather β the formats may look similar but the authentication systems are independent.
Related Reading
- Publishing overview β the full context for weather station publishing workflows.
- METAR and CWOP basics β deep dive into the APRS packet format and CWOP data quality standards.
- Station data sanity checks β validate your data before contributing it to any shared network.
- FTP publishing guide β publishing to your own website alongside network submissions.
- Security guide β protecting your API keys and station credentials.
- Troubleshooting upload issues β if network submissions are failing, the diagnostic flowchart applies to API uploads too.
FAQ
Can I publish to all four networks from a single station simultaneously? Yes. Every major station package (GraphWeather, WeeWX, CumulusMX) supports concurrent multi-network publishing. The uploads are independent β a failure on one network does not affect the others.
Do I need a ham radio licence for CWOP?
No. Non-licensed operators receive a CW or DW prefix call sign. A ham licence is only needed if you want to use your existing amateur call sign.
Which network should I prioritise if I can only choose one? CWOP, if scientific contribution matters to you β your data enters the NOAA pipeline. Weather Underground, if you want the largest public audience and a visible map pin. The effort difference between one and all four is minimal, though, so there is little reason to limit yourself.
How do I know if my CWOP data is passing quality control? MADIS provides a station data quality page where you can look up your call sign and see which observations passed, which were flagged, and why. Common flags include spatial consistency (your reading is an outlier compared to neighbours) and temporal consistency (a sudden jump that looks like a sensor glitch).
Will publishing to multiple networks use significant bandwidth? No. Each upload is a single HTTP request (a few hundred bytes) or APRS packet. Even publishing to all four networks every 5 minutes uses less than 1 MB per day. It is negligible compared to a single webcam image upload.