Here are 5 free weather APIs that you can use in your applications and on your websites. These APIs provide accurate weather information from various regions of different countries in the world. Using these APIs, you can fetch details of current climate as well as the forecast data by making simple API calls. These APIs return JSON and XML response and then show different data about weather like temperature, minimum temperature, maximum temperature, pressure, humidity, wind speed, wind direction, clouds, chill, sunrise, sunset and some other data. You can get this data by making simple API calls and then use it wherever you want. And in the following post, I will talk about 5 such services that offer weather data through their API.
If you are making some software or apps that will show the weather data, then you can try out these APIs. You can use these after signing up for their API key. And after getting the API key, you can start building the API request URL. You can make calls to the API from your browser or you can use command line tools like cURL. These APIs have different methods for calling and I will explain that in context of each one of them.
5 Free Weather API:
Yahoo Weather
Yahoo Weather is one of the best free weather API that you can use in your applications and website. It lets you make 2000 signed API calls per day. In the API response, it returns JSON and XML data that you can analyze. Basically, it gives the forecast information about any specific region on earth. You can opt to get the forecast data for specific number of days. In the API response, you can see the weather data like temperature, sunrise time, sunset time, wind speed, chill, wind direction, and some others. You can get all this data and then do whatever you want.
To make API calls, you can see the syntax of the developer page of Yahoo. And you can use the above link to see that. In the API call URL, you have to provide the country, city name and get the result. See below the syntax of the API call URL.
URL: https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid in (select woeid from geo.places(1) where text=”nome, ak“)&format=json&env=store://datatables.org/alltableswithkeys
You can see a sample response that the API call produced in my case. In the JSON response, you can see various weather parameters that this API gives. You can use this data and parse it in your applications programmatically.
OpenWeatherMap
OpenWeatherMap is a very good weather service that also provides its API for developers. You can integrate weather functionality in your applications and websites easily through this API. In the free plan, it provides you 60 API calls per minute, 5 days forecast per 3 hour, and 16 days/daily forecast. To make API calls, it ask you to create a API key after signing up for this free service. It can return the API response in HTML, XML, and JSON formats. And you can easily query current weather data or forecast data by making a simple API call. In the response, you can see the weather parameters like temperature, wind speed, wind direction, humidity, clouds, sunrise, sunset, coordinates, precipitation, pressure, and visibility. You can get this data in any format and then do whatever you like.
You can sign up for this service using the above link. After that, you can get your API key from the “API keys” section of the website. Next, you can start building API call URL and use that. Below is the syntax and example for using this API.
For getting current weather data:
Syntax: http://api.openweathermap.org/data/2.5/weather?q=”CityName“&mode=”Format“&appid=”APIKey”
Example: http://api.openweathermap.org/data/2.5/weather?q=new%20delhi&mode=xml&appid=b02xxxxxxx794
For getting forecast data:
Syntax: http://api.openweathermap.org/data/2.5/forecast?q=”City,Country“&appid=”APIKey”
Example: http://api.openweathermap.org/data/2.5/forecast?q=Delhi,IN&appid=b0xxxxxxxxxxxx94
You can use any of the above URLs in our browser to get the corresponding weather data. But do note that, while using forecast API, you should type the country name as specified in ISO 3166 document.
Weather Unlocked
Weather Unlocked provides another powerful weather API that you can use easily. With this API, you can query current as well forecast weather data by making API calls from browser. In the free plan, it lets you make 25000 API calls per day (max 75 calls per minute) and for forecast, you can query 8 days data per 3 hour. It can return the response in XML or JSON format and you can see the various aspects of weather in the data that it shows. You can see latitude, longitude, altitude, temperature (in Celsius and Fahrenheit), humidity, wind speed, wind direction, visibility, air pressure, and dew point. You can get this data in XML or JSON and then do whatever you want. Also, you can see the documentation page from the above link and then see other API parameters.
You can sign up for this service using the link above. After that, get your API key and app ID and then you can start using this service. Just create the API calls URL and then make calls in the browser. Use the below syntax for making calls.
For current weather:
Syntax: http://api.weatherunlocked.com/api/current/”LocationCoordinates“2?app_id=APP_ID&app_key=APIKEY
Example: http://api.weatherunlocked.com/api/current/28.6139,77.2090?app_id=02xxxxx43app_key=568xxxxxx5df
For weather forecast:
Syntax: http://api.weatherunlocked.com/api/forecast/LocationCoordinates?app_id=APP_ID&app_key=APIKEY
Example: http://api.weatherunlocked.com/api/forecast/28.6139,77.2090?app_id=02xxx09&app_key=568xxxxx50df
You can make API calls to get the weather data in blink of an eye. In the screenshot above, you can see the weather data in the XML format that it returned in my case.
Dark Sky API
Dark Sky API is yet another free service that provides a flexible API to query weather data. Just like most of the websites in this list, you can use this to get weather data. However, it only supports weather forecast. It lets you make 1000 calls per day to query the weather data. It produces XML or JSON response as specified by you and you can see a lot of weather parameters. In the output, you can see data about temperature, apparent temperature, wind speed, wind gust, cloud cover, UV index, dew point, wind bearing, visibility, and ozone. After getting this data, you can do whatever you want.
You can sign up for this service using the link above and then you can get the API key. On the web version, you can even see the usage graph of the API.
Syntax: https://api.darksky.net/forecast/APIKey/[latitude],[longitude]
Example: https://api.darksky.net/forecast/706xxxxxxxxxxxxxx907/28.6139,77.2090
You can use the above syntax of the API URL to make calls and get the weather data in your browser. The JSON data that it returns is a bit messy but you can use it if you know how to deal with it programmatically.
Apixu
Apixu is the last free weather API in my list that you can use to query weather data anytime. This API lets you query weather data for current climate conditions as well forecast data for any region of the world. In the free plan, it allows you to make 10000 requests per month and provides 7 day forecast data. This API support JSON as well as XML data to show a lot of weather parameters. You can see the temperature, pressure, wind speed, wind direction, precipitation, humidity, cloud, local time, longitude, latitude etc. You can analyze the data that it produces about any queried location. Just make simple API call to get this data and then use it in software, apps, software, etc.
Use the above link to sign up for the service and get the API key to get started. The URL to make API calls is very simple in this case. You can use the below Syntax of the URL to make the API calls and get current weather data and forecast data.
API call for current weather data:
Syntax: http://api.apixu.com/v1/current.json?key=YourAPIKey&q=”Location”
Example: http://api.apixu.com/v1/current.xml?key=2330xxxxxxxxxxx0105&q=new%20delhi
API call for forecast:
Syntax: http://api.apixu.com/v1/forecast.json?key=YourAPIKey&q=”Location”
Example: http://api.apixu.com/v1/forecast.xml?key=233xxxxx005&days=7&q=new%20delhi
In the screenshot above, you can see how this API works and get you the latest weather data of the queried location. You can easily integrate this API in your applications and request weather data anytime.
Wrapping things up…
If you are planning to make some apps or software which can show weather data then you can try the APIs that I have listed above. All these APIs are very powerful and capable of delivering accurate weather and forecast data of any location on the planet. You just have to make simple API calls to the server and get the response in desired format. Personally, I feel that OpenWeatherMap, Weather Unlocked, and Yahoo Weather are the best weather APIs in my list. However you can use others as well if you are okay with the limits that they impose.