cURL
curl --request GET \
--url https://api.goes.health/v1/risks/overview/forecastimport requests
url = "https://api.goes.health/v1/risks/overview/forecast"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.goes.health/v1/risks/overview/forecast', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.goes.health/v1/risks/overview/forecast",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.goes.health/v1/risks/overview/forecast"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.goes.health/v1/risks/overview/forecast")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goes.health/v1/risks/overview/forecast")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"responseId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"activity_intelligence": "<string>",
"forecast": [
{
"time": "2023-11-07T05:31:56Z",
"risks": [
{
"id": "sunburn",
"title": "Sunburn",
"source": "environment",
"status": "applicable",
"score": 2,
"summary": "<string>",
"tips": [
"<string>"
],
"error": "<string>"
}
],
"alerts": [
{
"event": "<string>",
"severity": "<string>",
"senderName": "<string>",
"headline": "<string>",
"description": "<string>",
"instruction": "<string>"
}
]
}
]
}{
"error": 123,
"message": "<string>"
}Forecasted Risks
Get Forecast Overview
Returns a 48-hour forecast overview of all risks for a given location with default settings.
GET
/
v1
/
risks
/
overview
/
forecast
cURL
curl --request GET \
--url https://api.goes.health/v1/risks/overview/forecastimport requests
url = "https://api.goes.health/v1/risks/overview/forecast"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.goes.health/v1/risks/overview/forecast', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.goes.health/v1/risks/overview/forecast",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.goes.health/v1/risks/overview/forecast"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.goes.health/v1/risks/overview/forecast")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goes.health/v1/risks/overview/forecast")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"responseId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"activity_intelligence": "<string>",
"forecast": [
{
"time": "2023-11-07T05:31:56Z",
"risks": [
{
"id": "sunburn",
"title": "Sunburn",
"source": "environment",
"status": "applicable",
"score": 2,
"summary": "<string>",
"tips": [
"<string>"
],
"error": "<string>"
}
],
"alerts": [
{
"event": "<string>",
"severity": "<string>",
"senderName": "<string>",
"headline": "<string>",
"description": "<string>",
"instruction": "<string>"
}
]
}
]
}{
"error": 123,
"message": "<string>"
}Coming Soon — This endpoint is under development and will be available at a future date.
Simple Request (GET)
Headers
string
required
Your API key for authentication. Format:
Bearer YOUR_API_KEYQuery Parameters
string
required
The latitude and longitude for the location to check, formatted as
{latitude},{longitude}.object
Configuration options that control how the response is built.
Show options properties
Show options properties
string
Controls the length of the forecast summary text for each hour. Available options:
brief: 1-2 sentences focusing on the most critical risksstandard: 3-4 sentences with key risks and basic context (default)detailed: 5-7 sentences with comprehensive risk analysis and detailed recommendations
string
Comma-separated list of sections to exclude from the response. Options:
alerts, environment, wildlife, plants, activity_intelligenceExample
# Basic request
curl "http://api.goes.health/v1/risks/overview/forecast?location=37.7485,-119.5331" \
-H "Authorization: Bearer YOUR_API_KEY"
# With options
curl "http://api.goes.health/v1/risks/overview/forecast?location=37.7485,-119.5331&options.length=detailed&options.exclude=alerts" \
-H "Authorization: Bearer YOUR_API_KEY"
Advanced Request (POST)
Headers
string
required
Your API key for authentication. Format:
Bearer YOUR_API_KEYBody Parameters
string
required
The latitude and longitude for the location to check, formatted as
{latitude},{longitude}.object
Configuration options that control how the response is built.
Show options properties
Show options properties
string
Controls the length of the forecast summary text for each hour. Available options:
brief: 1-2 sentences focusing on the most critical risksstandard: 3-4 sentences with key risks and basic context (default)detailed: 5-7 sentences with comprehensive risk analysis and detailed recommendations
array
A list of sections to exclude from the response. Available options:
alerts: Excludes national watches, warnings, and advisoriesenvironment: Excludes environmental riskswildlife: Excludes wildlife risksplants: Excludes plant risksactivity_intelligence: Excludes the AI-generated summary
object
Information about who is going outside. This object is extensible - you can add custom fields beyond the standard ones listed below.
Show profile properties
Show profile properties
string
The outdoor activity you plan to do (e.g., “hiking”, “camping”, “skiing”). This helps personalize the Activity Intelligence.
integer
The age of the person doing the activity. Used to provide age-appropriate risk analysis in the Activity Intelligence.
integer
Experience level with outdoor activities, from 0 (beginner) to 4 (expert).
string
Any additional context that may be relevant for the forecast. This helps provide more personalized Activity Intelligence.
Example
curl -X POST "http://api.goes.health/v1/risks/overview/forecast" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"location": "37.7485,-119.5331",
"options": {
"length": "standard",
"exclude": []
},
"profile": {
"activity": "hiking",
"age": 32,
"outdoor_experience": 2,
"context": "Planning a multi-day backpacking trip"
}
}'
Response
Both the GET and POST methods return the same response format. The POST method provides more personalized content in the Activity Intelligence field.string
A unique identifier for this response. Use this ID if submitting feedback about the forecast.
string
AI-generated summary of the overall 48-hour forecast, personalized to your activity and experience level when using the POST method.
array
An array of 48 hourly forecast entries.
Show child attributes
Show child attributes
string
ISO 8601 timestamp (UTC) representing the forecast hour.
array
Consolidated risks for this hour.
Show child attributes
Show child attributes
string
The unique identifier for the risk.
string
The human-readable title of the risk.
string
The source of this risk (“environment”, “wildlife”, or “plants”).
enum
The status of this risk assessment:
applicable: Risk is present and relevant for this locationnot_applicable: Risk is not present or relevant for this locationunavailable: Risk data is unavailable for this locationerror: An error occurred while assessing this risk
integer
A number from 0-3 representing the risk level or prevalence:
- For environmental risks: risk level from 0 (None) to 3 (High)
- For wildlife and plant risks: prevalence score from 0 (None) to 3 (High)
array
A collection of 1-2 sentence strings with tips and recommendations.
string
A 1-2 sentence summary of the tips and key information.
string
Error message describing what went wrong. Only present when status is
error.array
Active NOAA weather alerts for this hour (United States only).
{
"responseId": "123e4567-e89b-12d3-a456-426614174000",
"activity_intelligence": "For your backpacking trip, early morning conditions are ideal with low UV and minimal lightning risk. This is the perfect time to break camp and start your hike before temperatures rise.",
"forecast": [
{
"time": "2024-06-27T00:00:00Z",
"risks": [
{
"id": "sunburn",
"title": "Sunburn",
"source": "environment",
"status": "applicable",
"score": 2,
"summary": "...",
"tips": [
"..."
]
}
],
"alerts": []
}
]
}
Query Parameters
The latitude and longitude, formatted as {latitude},{longitude}.
Pattern:
^-?\d+(\.\d+)?,-?\d+(\.\d+)?$Controls the length of the forecast summary text for each hour.
Available options:
brief, standard, detailed Comma-separated list of sections to exclude from the response. Options: alerts, environment, wildlife, plants, activity_intelligence
Response
A 48-hour forecast overview of risks with default settings.

