6 Best free Weather APIs for Your Next Mobile App

Here we have compiled a list of 6 best free weather APIs for your next mobile app. Weather APIs are the best way to fetch and expose weather-related raw data on the web or mobile app.

Weather-related data points like rain forecasts, storm warnings, etc., are always available here and there. However, building an app collectively using 5 such weather data points (using 6 APIs discussed in this article) may give your mobile app a chance to stand out.

This article will describe 6 unique weather APIs with unique data points, how to use them, pricing (if they are paid), and their pros & cons.

Before jumping on to the point, let’s discuss a few basics.

Also Read5 Best Free Dictionary APIs for Apps

What are weather APIs?

API is the acronym for Application Programming Interface, which is an intermediary interface that provides a connection between computers or computer programs.

Weather APIs are used by clients like you and me (using the web or mobile application) to request data sets and respond with relevant weather data.

In lament terms, weather APIs help a programmer fetch raw weather data which can be analyzed, rephrased, or presented as it is to the end user.

Also Read5 Best Free Dictionary APIs for Apps

What can all data be fetched using weather APIs?

Developing a weather-related app requires a lot of data points like rain forecasts, AQI (Air Quality Index), wind speed, tidal warning, etc. We will use 5 APIs to get the data related to these data points, which is enough to create a mobile app.

Disclaimer – Before proceeding, we must inform you that these APIs are third-party APIs and the authenticity of data is their responsibility.

You may connect with their support portal in case of any data discrepancy. Also, you must follow the guidelines on their official website to use them, and if required, you must provide attribution to them.

Also ReadHow To Use ArcGIS API for Python and Jupyter Notebooks

6 Best free Weather APIs for Your Next Mobile App

best free weather apis

1. AQICN.org (Air Quality Index)

aqicn - free weather apis

AQICN is an excellent API for location-based Air Quality Data (AQI) without cost. Additionally, they provide an extensive data set which is more than enough to present the complete picture of the Air Quality of a given location.

The output JSON data includes AQI, pm25, pm10, co, h, no2, o3, etc. AQICN API also provides AQI forecast for the upcoming two weeks as well.

How to use AQICN API?

To use API, you must pass your token, which is essential for all API access. You can register here to get your access key.

Once the token is received, you can pass the city and token parameters to fetch the AQI data. For example –

http://api.waqi.info/feed/Mumbai/?token={your Token}

Pricing

AQICN is free with a quota of 1000 requests per second. However, if you want to use it for profit, you may need to connect with the AQICN team and get an explicit agreement.

Also ReadHow To Use ArcGIS API for Python and Jupyter Notebooks

2. Global Real-Time UV Index JSON API

The ultraviolet index, or UV index, is an international standard measurement of the intensity or strength of sunburn-producing ultraviolet radiation at a particular place and time.

While going out, you might want to check if the UV radiation is adequate for your skin. Usually, a 1-4 UV index is considered safe/ less harmful for skin sunburn.

Global Real-Time UV Index is a popular API to get the hourly refreshed real-time UV index for a given location.

How to use Global Real-Time UV Index API?

You will have to sign-up for an API access key token which is pretty simple. Once you receive the access key, you can call the API request by passing the location’s access key, latitude, and longitude. Here is the request and response example –

global real-time uv index json api

//API request
curl -X GET 'https://api.openuv.io/api/v1/uv?lat=-33.34&lng=115.342'
-H 'x-access-token: Your_API_Key'
// API Response: 
{
  "uv": 5.6377,
  "uv_time": "2018-01-20T13:25:40.562Z",
  "uv_max": 12.5159,
  "uv_max_time": "2018-01-20T04:29:18.813Z",
  "ozone": 290.1,
  "ozone_time": "2018-01-20T01:50:25.780Z"
}

Pricing

Global Real-Time UV index API is free for up to 50 requests per day. You can purchase a $15 monthly plan which offers up to 15000 requests per day.

Also ReadHow To Concatenate Arrays in Python [With Examples]

3. OpenWeather Daily Forecast 16 Days

Most of the time, we plan our day based on outside weather conditions. To facilitate this, OpenWeather offers Daily Forecast API, which gives us a forecast of the next 16 days.

Daily Forecast 16 Days is available at any location on the globe. The response of this API includes daily weather data, which is available in JSON or XML format.

How to use Daily Forecast 16 Days API?

You will have to register for an access key. Once you get the access key, you will have to pass additional required parameters, latitude, and longitude, along with optional parameters like the number of days for forecast, mode (JSON or XML), language, etc.

Example

api.openweathermap.org/data/2.5/forecast/daily?lat=44.34&lon=10.99&cnt=7&appid={API key}
{
  "city": {
    "id": 3163858,
    "name": "Zocca",
    "coord": {
      "lon": 10.99,
      "lat": 44.34
    },
    "country": "IT",
    "population": 4593,
    "timezone": 7200
  },
  "cod": "200",
  "message": 0.0582563,
  "cnt": 7,
  "list": [
    {
      "dt": 1661857200,
      "sunrise": 1661834187,
      "sunset": 1661882248,
      "temp": {
        "day": 299.66,
        "min": 288.93,
        "max": 299.66,
        "night": 290.31,
        "eve": 297.16,
        "morn": 288.93
      },
      "feels_like": {
        "day": 299.66,
        "night": 290.3,
        "eve": 297.1,
        "morn": 288.73
      },
      "pressure": 1017,
      "humidity": 44,
      "weather": [
        {
          "id": 500,
          "main": "Rain",
          "description": "light rain",
          "icon": "10d"
        }
      ],
      "speed": 2.7,
      "deg": 209,
      "gust": 3.58,
      "clouds": 53,
      "pop": 0.7,
      "rain": 2.51
    },

Pricing

You can make up to 60 calls per minute without any charge. However, for additional requests, you may have to purchase prime plans as shown below (may vary with time).

Also ReadPattern Programs in Python [Star and Alphabetical Patterns]

4. Soil data API

Soil data is interrelated to weather as it contains factors like moisture, quality, thinning, temperature, etc. Soil-related information is mainly used for agricultural purposes. Soil data API by Agromonitoring is beneficial in this regard.

Soil data API provides soil moisture and temperature information like t10, t0, etc.

How to use Soil Data API?

To use Soil data API, you must create a Polygon (geolocation-related information). You can even check the available polygons list and validate if it can be used in your context. Also, you need to register for an access token key (appid).

Here is the sample request and response –

//Request

http://api.agromonitoring.com/agro/1.0/soil?polyid=5aaa8052cbbbb5000b73ff66&appid=bb0664ed43c153aa072c760594d775a7

//Response

{
   "dt":1522108800,
   "t10":281.96,
   "moisture":0.175,
   "t0":279.02
}
  • dt – date
  • t10 – Temperature of 10 cm depth (in Kelvin)
  • t0 – Surface temperature (in Kelvin)

Also Read5 Free Websites to Search Code Online

5. NDVI Index API

The normalized difference vegetation index (NDVI Index) is a weather API index representing the agricultural field’s greenness involving satellite images. Their imaging instruments recorded wavelengths of infrared light reflected by vegetation on the ground.

This index help farmers understand the ecosystem, analyze the changing pattern and also help in deciding the appropriate action to overcome any loss.

How to use NDVI Index API?

Like soil data API, you will have to pass the appid, polygon id, and start and end date of the interval you want to check the NDVI data. You can also pass additional parameters like zoom level, coverage max, and min. Here is the sample API request and response –

Request: https://samples.agromonitoring.com/agro/1.0/ndvi/history?polyid=5aaa8052cbbbb5000b73ff66&start=1530336000&end=1534976000&appid=b1b15e88fa797225412429c1c50c122a1

//Response

{
  {
    "dt": 1534723200,
    "source": "l8",
    "zoom": 13,
    "dc": 100,
    "cl": 0.16,
    "data": {
      "std": 0.1558458159825856,
      "p75": 0.7262991514983845,
      "min": 0.17311303041682313,
      "max": 0.8387096774193549,
      "median": 0.60759000472567,
      "p25": 0.474027202361513,
      "num": 8374,
      "mean": 0.5979920916568334
    },
    ....
}

Also ReadGraph Plotting in Python Using Matplotlib

6. Weatherapi.com for Wind Speed API

Wind Speed or wind flow speed is another critical factor in day-to-day decision-making. Mostly wind flows from high atmospheric pressure to low atmospheric pressure due to changes in weather conditions, including temperature.

Weatherapi.com provides API to fetch many weather-related data points, including wind speed in kmph & mph, wind direction, and wind temperature.

The best quality about this API is that the data structure is neat, and you can quickly render it on UI without spending much time resolving structure serialization and deserialization.

How to use weatherapi.com API?

Using this API is very simple. You can register and opt for free API, which will provide you with an API key. You can refer to the documentation for more information. Calling this API requires an API key and location (city name). Here is the sample response for Pune, India.

{
    "location": {
        "name": "Pune",
        "region": "Maharashtra",
        "country": "India",
        "lat": 18.53,
        "lon": 73.87,
        "tz_id": "Asia/Kolkata",
        "localtime_epoch": 1670837602,
        "localtime": "2022-12-12 15:03"
    },
    "current": {
        "last_updated_epoch": 1670837400,
        "last_updated": "2022-12-12 15:00",
        "temp_c": 27.1,
        "temp_f": 80.8,
        "is_day": 1,
        "condition": {
            "text": "Patchy rain possible",
            "icon": "//cdn.weatherapi.com/weather/64x64/day/176.png",
            "code": 1063
        },
        "wind_mph": 4.0,
        "wind_kph": 6.5,
        "wind_degree": 92,
        "wind_dir": "E",
        "pressure_mb": 1008.0,
        "pressure_in": 29.78,
        "precip_mm": 0.3,
        "precip_in": 0.01,
        "humidity": 58,
        "cloud": 89,
        "feelslike_c": 28.3,
        "feelslike_f": 82.9,
        "vis_km": 9.0,
        "vis_miles": 5.0,
        "uv": 6.0,
        "gust_mph": 5.4,
        "gust_kph": 8.6
    }
}

Pricing

Weatherapi.com offers many API subscription plans, but mostly it is free. In the free package, you can request up to 1 M API calls per month which are more than enough to start. Once your mobile app starts generating revenue, you can switch to pro plans starting from $7 and going up to $65 per month.

Also Read10 Best Programming Books for Beginners

Final Thoughts

Weather APIs are an excellent way to play around and build a complete weather mobile app that is useful for the vast user base, including the agricultural segment.

You want to check if it is going to rain, we have a response from OpenWeather Daily API, and you want to check the UV Index so that you can decide whether it is ok to go outside; you can use the response from UV Index API.

The bottom line is that the set of APIs mentioned in this article is extensive enough to build a complete weather app. Weather APIs discussed in this article are primarily free for basic use. Later if you want to extend it to a broader audience, you may purchase the additional API requests.

Scroll to Top