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.
using System; using System.Net.Http; using System.Text; using System.Text.Json; using System.Threading.Tasks; public class ApiClient { private static readonly string BaseUrl = "https://weathergrid.api.mapwale.com/v1"; private static readonly string PrivateId = "<privateId>"; static async Task Main(string[] args) { try { var result = await FetchDataAsync(); Console.WriteLine(JsonSerializer.Serialize(result, new JsonSerializerOptions { WriteIndented = true })); } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } } private static async Task<object> FetchDataAsync() { using var client = new HttpClient(); // Build URL var parameters = new Dictionary<string, string> { { "region", "YOUR_REGION" } // Replace with actual region value }; var urlBuilder = new StringBuilder(BaseUrl); foreach (var param in ["region"]) { urlBuilder.Append($"/{Uri.EscapeDataString(parameters[param])}"); } // Add query parameters var queryParams = {"zip":"401101","show":"all"}; urlBuilder.Append("?"); foreach (var param in queryParams) { urlBuilder.Append($"{param.Key}={Uri.EscapeDataString(param.Value)}&"); } // Set headers client.DefaultRequestHeaders.Add("Authorization", $"Bearer {PrivateId}"); // Create request var request = new HttpRequestMessage(new HttpMethod("GET"), urlBuilder.ToString()); if ("GET" == "POST" || "GET" == "PUT") { var content = JsonSerializer.Serialize({}); request.Content = new StringContent(content, Encoding.UTF8, "application/json"); } // Send request var response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { throw new HttpRequestException($"HTTP error! status: {response.StatusCode}"); } var responseContent = await response.Content.ReadAsStringAsync(); return JsonSerializer.Deserialize<object>(responseContent); } }