Live Weather Monitoring API Documentation
Hyperlocal monitoring for weather, with accurate data for criminality and infrastructure. This API provides accurate, up-to-date local details for Indian postal codes for integrating into your applications for Indian markets.
Below are the endpoints for accessing local datasets. Learn how to integrate the API into your application.
Authorization:
- privateId *Specify privateId for site
(e.g., "Bearer example^com-SomeIdString").
Query Parameters:
- zip Specify which data to show
(e.g., 401101). - show Comma-separated list of datasets you need
(e.g., "all"|"state,district").
Route Parameters:
- :region *Please check location table here
(e.g., "WEST_3|ARAB_1|EAST_3|NORD_6").
Response based on params:
{ "success": true, "data": { "state": { "population": { "people": 123144223, "population_density": 365, "area": 307713, "urban_population": 45.22, "rural_population": 54.78, "gender_ratio": 925, "human_development_index": 0.624, "life_expectancy": { "infant_mortality_rate_per_1000": 29, "male": 66.2, "female": 69.8 }, "literacy_rate": { "total": 84.11, "male": 88.87, "female": 79.9 }, "official_languages": [ "Marathi" ], "spoken_languages": [ "Marathi", "Hindi", "English", "Urdu" ], "religions": { "Hinduism": 79.83, "Islam": 11.53, "Buddhism": 5.67, "Other": 2.97 } }, "economy": { "unit": "USD", "annual_tourists": 67000000, "gdp_nominal": { "value": 459.8, "year": 2023 }, "gdp_per_capita": { "value": 3727, "year": 2023 }, "exports": { "total_value_billion": 39 } }, "climate": { "type": "Tropical Wet and Dry", "annual_rainfall_mm": 2500, "avg_temperature": { "summer": "34", "winter": "19", "format": "°C" } }, "infrastructure": { "electricity_access": "100%", "telecom_connectivity": "96%", "internet_users": { "percentage_of_population": 58, "total_users_million": 71.6 } }, "service": true, "info": "Economic Statistics limited to viable Indian territories or states!" }, "district": { "name": "Thane", "weather": { "base": { "lon": 73.396, "lat": 19.4115 }, "weather": { "id": 804, "main": "Clouds", "description": "overcast clouds", "icon": "04d" }, "readings": { "temp": 25.65, "feels_like": 26.52, "temp_min": 25.65, "temp_max": 25.65, "pressure": 1009, "humidity": 86, "sea_level": 1009, "grnd_level": 1001 }, "visibility": 10000, "wind": { "speed": 0.62, "deg": 48, "gust": 0.86 }, "clouds": 100, "sunrise": 1728521952, "sunset": 1728564435 }, "people": "mix", "criminality": "mid" } } }
This endpoint provides the current hyperlocal details for the requested postal codes.
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.HashMap; import java.util.Map; import com.fasterxml.jackson.databind.ObjectMapper; public class ApiClient { private static final String BASE_URL = "https://weathergrid.api.mapwale.com/v1"; private static final String PRIVATE_ID = "<privateId>"; public static void main(String[] args) { try { String result = fetchData(); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } private static String fetchData() throws Exception { // Create HTTP client HttpClient client = HttpClient.newHttpClient(); ObjectMapper mapper = new ObjectMapper(); // Build URL Map<String, String> params = new HashMap<>(); params.put("region", "YOUR_REGION"); // Replace with actual region value StringBuilder urlBuilder = new StringBuilder(BASE_URL); ["region"].forEach(param -> urlBuilder.append("/").append(params.get(param)) ); // Add query parameters Map<String, String> queryParams = {"zip":"401101","show":"all"}; urlBuilder.append("?"); queryParams.forEach((key, value) -> urlBuilder.append(key).append("=").append(value).append("&") ); // Create request HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create(urlBuilder.toString())) .header("Content-Type", "application/json") .header("Authorization", "Bearer " + PRIVATE_ID); if ("GET".equals("POST") || "GET".equals("PUT")) { requestBuilder.method("GET", HttpRequest.BodyPublishers.ofString( mapper.writeValueAsString({}) ) ); } else { requestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); } // Send request HttpResponse<String> response = client.send( requestBuilder.build(), HttpResponse.BodyHandlers.ofString() ); if (response.statusCode() >= 400) { throw new RuntimeException("HTTP error! status: " + response.statusCode()); } return response.body(); } }