> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.silurian.ai/api-reference/weather/forecast/daily/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.silurian.ai/_mcp/server. # Get Daily Forecast GET https://earth.weather.silurian.ai/api/v1/forecast/daily Get daily weather forecast for a specific location Only allowing local timezone aggregations for now since it is unclear how exactly users will understand "UTC". Reference: https://docs.silurian.ai/api-reference/weather/forecast/daily ## Authentication - `X-API-KEY` header (required) — API Key authentication via header ## Request ### Query parameters - `latitude` (double, required) - `longitude` (double, required) - `timezone` ("local", optional) - `units` (enum, optional) - Allowed values: `metric`, `imperial` ## Response ### 200 Successful Response - `latitude` (double, required) - `longitude` (double, required) - `forecast_time` (datetime, required) - `timezone` (string, required) - `utc_offset` (integer, required) - `units` (DailyWeatherResponseUnits, required) - `daily` (list of DailyConditions, required) - `elevation` (integer, optional) ## Errors ### 401 Forecast Daily Request Unauthorized Error Unauthorized - `any` ### 404 Forecast Daily Request Not Found Error Not Found - `any` ### 422 Forecast Daily Request Unprocessable Entity Error Validation Error - `any` ### 500 Forecast Daily Request Internal Server Error Internal Server Error - `any` ## Types ### DailyWeatherResponseUnits ### DailyConditions - `timestamp` (string, required) - `temperature` (double, optional) - `precipitation_accumulation` (double, optional) - `precipitation_probability` (integer, optional) - `precipitation_type` (enum, optional) - Allowed values: `liquid`, `snow`, `hail`, `sleet`, `freezing_rain` - `snowfall_accumulation` (double, optional) - `cloud_cover` (integer, optional) - `humidity` (integer, optional) - `wind_speed` (double, optional) - `wind_direction` (double, optional) - `dewpoint_temperature` (double, optional) - `pressure` (double, optional) - `downward_solar_radiation` (double, optional) - `wind_speed_100m` (double, optional) - `wind_direction_100m` (double, optional) - `feels_like_temperature` (double, optional) - `weather_code` (enum, optional) - Allowed values: `clear-night`, `clear-day`, `partly-cloudy-day`, `partly-cloudy-night`, `cloudy`, `rain`, `snow` - `global_horizontal_irradiation` (double, optional) - `direct_normal_irradiation` (double, optional) - `diffuse_horizontal_irradiation` (double, optional) - `max_temperature` (double, optional) - `min_temperature` (double, optional) ### MetricUnits - `elevation` (string, optional, default: m) - `temperature` (string, optional, default: °C) - `feels_like_temperature` (string, optional, default: °C) - `precipitation_accumulation` (string, optional, default: mm) - `precipitation_probability` (string, optional, default: %) - `snowfall_accumulation` (string, optional, default: mm) - `cloud_cover` (string, optional, default: %) - `humidity` (string, optional, default: %) - `wind_speed` (string, optional, default: m/s) - `wind_direction` (string, optional, default: °) - `dewpoint_temperature` (string, optional, default: °C) - `pressure` (string, optional, default: hPa) - `downward_solar_radiation` (string, optional, default: kJ/m²) - `wind_speed_100m` (string, optional, default: m/s) - `wind_direction_100m` (string, optional, default: °) - `global_horizontal_irradiation` (string, optional, default: kWh/m²) - `direct_normal_irradiation` (string, optional, default: kWh/m²) - `diffuse_horizontal_irradiation` (string, optional, default: kWh/m²) ### ImperialUnits - `elevation` (string, optional, default: ft) - `temperature` (string, optional, default: °F) - `feels_like_temperature` (string, optional, default: °F) - `precipitation_accumulation` (string, optional, default: in) - `precipitation_probability` (string, optional, default: %) - `snowfall_accumulation` (string, optional, default: in) - `cloud_cover` (string, optional, default: %) - `humidity` (string, optional, default: %) - `wind_speed` (string, optional, default: mph) - `wind_direction` (string, optional, default: °) - `dewpoint_temperature` (string, optional, default: °F) - `pressure` (string, optional, default: mb) - `downward_solar_radiation` (string, optional, default: BTU/ft²) - `wind_speed_100m` (string, optional, default: mph) - `wind_direction_100m` (string, optional, default: °) - `global_horizontal_irradiation` (string, optional, default: BTU/ft²) - `direct_normal_irradiation` (string, optional, default: BTU/ft²) - `diffuse_horizontal_irradiation` (string, optional, default: BTU/ft²) ## Examples **Request** ```json {} ``` **Response** ```json { "latitude": 47.6061, "longitude": -122.3328, "forecast_time": "2024-04-27T07:00:00Z", "timezone": "America/Los_Angeles", "utc_offset": -25200, "units": { "elevation": "m", "temperature": "°C", "feels_like_temperature": "°C", "precipitation_accumulation": "mm", "precipitation_probability": "%", "snowfall_accumulation": "mm", "cloud_cover": "%", "humidity": "%", "wind_speed": "m/s", "wind_direction": "°", "dewpoint_temperature": "°C", "pressure": "hPa", "downward_solar_radiation": "kJ/m²", "wind_speed_100m": "m/s", "wind_direction_100m": "°", "global_horizontal_irradiation": "kWh/m²", "direct_normal_irradiation": "kWh/m²", "diffuse_horizontal_irradiation": "kWh/m²" }, "daily": [ { "timestamp": "2024-04-27", "temperature": 15.3, "precipitation_accumulation": 0, "precipitation_probability": 10, "precipitation_type": "liquid", "snowfall_accumulation": 0, "cloud_cover": 20, "humidity": 60, "wind_speed": 3.5, "wind_direction": 200, "dewpoint_temperature": 8.2, "pressure": 1015.6, "downward_solar_radiation": 850, "wind_speed_100m": 7.8, "wind_direction_100m": 190, "feels_like_temperature": 15, "weather_code": "clear-day", "global_horizontal_irradiation": 12000, "direct_normal_irradiation": 11000, "diffuse_horizontal_irradiation": 9000, "max_temperature": 18, "min_temperature": 12.5 } ], "elevation": 53 } ``` **SDK Code** ```python import requests url = "https://earth.weather.silurian.ai/api/v1/forecast/daily" querystring = {"latitude":"47.6061","longitude":"-122.3328","timezone":"local","units":"metric"} payload = {} headers = { "X-API-KEY": "", "Content-Type": "application/json" } response = requests.get(url, json=payload, headers=headers, params=querystring) print(response.json()) ``` ```javascript const url = 'https://earth.weather.silurian.ai/api/v1/forecast/daily?latitude=47.6061&longitude=-122.3328&timezone=local&units=metric'; const options = { method: 'GET', headers: {'X-API-KEY': '', 'Content-Type': 'application/json'}, body: '{}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://earth.weather.silurian.ai/api/v1/forecast/daily?latitude=47.6061&longitude=-122.3328&timezone=local&units=metric" payload := strings.NewReader("{}") req, _ := http.NewRequest("GET", url, payload) req.Header.Add("X-API-KEY", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://earth.weather.silurian.ai/api/v1/forecast/daily?latitude=47.6061&longitude=-122.3328&timezone=local&units=metric") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' request["Content-Type"] = 'application/json' request.body = "{}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://earth.weather.silurian.ai/api/v1/forecast/daily?latitude=47.6061&longitude=-122.3328&timezone=local&units=metric") .header("X-API-KEY", "") .header("Content-Type", "application/json") .body("{}") .asString(); ``` ```php request('GET', 'https://earth.weather.silurian.ai/api/v1/forecast/daily?latitude=47.6061&longitude=-122.3328&timezone=local&units=metric', [ 'body' => '{}', 'headers' => [ 'Content-Type' => 'application/json', 'X-API-KEY' => '', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://earth.weather.silurian.ai/api/v1/forecast/daily?latitude=47.6061&longitude=-122.3328&timezone=local&units=metric"); var request = new RestRequest(Method.GET); request.AddHeader("X-API-KEY", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "X-API-KEY": "", "Content-Type": "application/json" ] let parameters = [] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://earth.weather.silurian.ai/api/v1/forecast/daily?latitude=47.6061&longitude=-122.3328&timezone=local&units=metric")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```