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 Foundation struct APIClient { static let baseURL = "https://weathergrid.api.mapwale.com/v1" static let privateId = "<privateId>" static func fetchData() async throws -> [String: Any] { // API configuration let params = [ "region": "YOUR_REGION" // Replace with actual region value ] // Build URL var urlComponents = URLComponents(string: baseURL)! // Add path parameters let pathParams = ["region"] let pathItems = pathParams.map { params[$0]! } urlComponents.path += "/" + pathItems.joined(separator: "/") // Add query parameters let queryParams: [String: String] = {"zip":"401101","show":"all"} urlComponents.queryItems = queryParams.map { URLQueryItem(name: $0.key, value: $0.value) } guard let url = urlComponents.url else { throw URLError(.badURL) } // Create request var request = URLRequest(url: url) request.httpMethod = "GET" request.setValue("application/json", forHTTPHeaderField: "Content-Type") request.setValue("Bearer \(privateId)", forHTTPHeaderField: "Authorization") // Add body for POST/PUT requests if ["POST", "PUT"].contains("GET") { let bodyData = {} request.httpBody = try JSONSerialization.data(withJSONObject: bodyData) } // Send request let (data, response) = try await URLSession.shared.data(for: request) guard let httpResponse = response as? HTTPURLResponse else { throw URLError(.badServerResponse) } guard httpResponse.statusCode < 400 else { throw URLError(.badServerResponse) } guard let result = try JSONSerialization.jsonObject(with: data) as? [String: Any] else { throw URLError(.cannotParseResponse) } return result } } // Example usage @main struct APIExample { static func main() async { do { let result = try await APIClient.fetchData() let prettyJSON = try JSONSerialization.data(withJSONObject: result, options: .prettyPrinted) if let jsonString = String(data: prettyJSON, encoding: .utf8) { print(jsonString) } } catch { print("Error: \(error)") } } }