We recently had a client that wanted to display weather data alongside data from store sales for marketing purposes. The requirements were actually pretty simple: they wanted to show the overall conditions, and high and low temperatures for the day. The critical piece was they wanted this information both in real time and for any given day in the past. I was tasked with figuring out how to get this information, so I started looking at the various weather APIs out there.
I checked out the following:
- Weather Underground (The Weather Channel’s official API)
- The Dark Sky Forecast
- National Oceanic and Atmospheric Administration’s National Weather Service
We wanted a REST endpoint, so that immediately eliminated NOAA’s endpoint (which is SOAP). I kept it on the list because it’s a government-run weather web service so can be considered highly accurate, but since we didn’t need high-precision and it’s a SOAP service instead of REST, I didn’t really look into it more. Each other service I looked at was a REST endpoint so halfway there.
One of the other considerations, although not a deal-breaker for the client, was pricing. All these APIs could deliver the needed data since what was required was so simple, and similarly all these APIs could serve up historical data as well. The difference (besides the features offered, which weren’t really a concern because of how little we actually needed from the API) is the pricing.
I’m not going to list out the pricing of each service, but here’s what ended up being the biggest strike against each:
- OpenWeatherMap only gives historical data beyond 1 year at the highest price point – a ridiculous $2,000 a month
- Weather Underground has a limit on how many hits your account can have per day/minute, and if you want history, the price ballooned (the middle-of-the-road option, which might have worked for us would still have been $520 a month)
- AccuWeather doesn’t have an option to try the API or review it without contacting their sales department to set up an account with them
This left The Dark Sky Forecast API which, while simple, provided all the information we needed (including historical data as far back as our client’s sales data required) for the low low price of free for the first 1,000 calls per day, then $0.0001 per call after that. This factor alone made it a winner, but a bonus was that the API was for developers, by developers, so the documentation was really simple and easy to follow. Furthermore, it was free to sign up and try out, so I could test it to my heart’s content (unless of course I made more than 1,000 api calls in a single day). It certainly didn’t provide the deluge (weather pun, hah) of information the other APIs did, but that didn’t matter to us as long as we could get the conditions, high, and low for any given day up to today. In fact, The Dark Sky Forecast also provides forecasting data for up to 10 years into the future!
So, we ended up going with The Dark Sky Forecast API, and so far it’s been working great!