curl --request GET \
--url https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard \
--header 'X-WorldMonitor-Key: <api-key>'import requests
url = "https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard"
headers = {"X-WorldMonitor-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-WorldMonitor-Key': '<api-key>'}};
fetch('https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard', 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.worldmonitor.app/api/forecast/v1/get-forecast-scorecard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-WorldMonitor-Key: <api-key>"
],
]);
$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.worldmonitor.app/api/forecast/v1/get-forecast-scorecard"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-WorldMonitor-Key", "<api-key>")
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.worldmonitor.app/api/forecast/v1/get-forecast-scorecard")
.header("X-WorldMonitor-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-WorldMonitor-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"byDomain": [
{
"brier": 1.5,
"domain": "example",
"logScore": 42.5,
"resolved": 1,
"scored": 42
}
],
"byGenerationOrigin": [
{
"brier": 1.5,
"generationOrigin": "example",
"logScore": 42.5,
"resolved": 1,
"scored": 42
}
],
"calibration": [
{
"brier": 1.5,
"bucket": "example",
"count": 1,
"maxProbability": 0.62,
"minProbability": 0.62
}
],
"degraded": true,
"error": "example"
}{
"violations": [
{
"field": "<string>",
"description": "<string>"
}
]
}{
"error": "<string>"
}{
"error": "<string>",
"code": "subscription_lapsed",
"requiredTier": 123,
"currentTier": 123,
"planKey": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"code": "renewal_verification_pending",
"requiredTier": 123
}{
"message": "<string>"
}GetForecastScorecard
GetForecastScorecard returns the latest forecast resolution scorecard; degraded distinguishes a backend outage from a healthy empty scorecard.
curl --request GET \
--url https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard \
--header 'X-WorldMonitor-Key: <api-key>'import requests
url = "https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard"
headers = {"X-WorldMonitor-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-WorldMonitor-Key': '<api-key>'}};
fetch('https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard', 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.worldmonitor.app/api/forecast/v1/get-forecast-scorecard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-WorldMonitor-Key: <api-key>"
],
]);
$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.worldmonitor.app/api/forecast/v1/get-forecast-scorecard"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-WorldMonitor-Key", "<api-key>")
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.worldmonitor.app/api/forecast/v1/get-forecast-scorecard")
.header("X-WorldMonitor-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worldmonitor.app/api/forecast/v1/get-forecast-scorecard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-WorldMonitor-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"byDomain": [
{
"brier": 1.5,
"domain": "example",
"logScore": 42.5,
"resolved": 1,
"scored": 42
}
],
"byGenerationOrigin": [
{
"brier": 1.5,
"generationOrigin": "example",
"logScore": 42.5,
"resolved": 1,
"scored": 42
}
],
"calibration": [
{
"brier": 1.5,
"bucket": "example",
"count": 1,
"maxProbability": 0.62,
"minProbability": 0.62
}
],
"degraded": true,
"error": "example"
}{
"violations": [
{
"field": "<string>",
"description": "<string>"
}
]
}{
"error": "<string>"
}{
"error": "<string>",
"code": "subscription_lapsed",
"requiredTier": 123,
"currentTier": 123,
"planKey": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"code": "renewal_verification_pending",
"requiredTier": 123
}{
"message": "<string>"
}Authorizations
User-issued WorldMonitor API key.
Query Parameters
Optional JMESPath expression applied server-side to project or reduce the JSON response before it is returned (mirrors the MCP jmespath argument). Invalid expressions, expressions larger than 1024 UTF-8 bytes, or projections that exceed the 256 KB output cap return HTTP 400 with a {_jmespath_error, original_keys} envelope. Grammar and worked examples: https://www.worldmonitor.app/docs/mcp-jmespath.
Response
Successful response
Warning: Values > 2^53 may lose precision in JavaScript
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Headline Brier/log score over scored entries that are neither synthetic backfill nor unpromoted shadow streams; count 0 with excluded_scored > 0 means every scored entry was excluded.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Matured means past deadline or resolved.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Rolling scorecard of the market-alert ledger.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
