curl --request GET \
--url https://rest.forestreet.com/v2/events-monitor/events \
--header 'x-api-key: <api-key>'import requests
url = "https://rest.forestreet.com/v2/events-monitor/events"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://rest.forestreet.com/v2/events-monitor/events', 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://rest.forestreet.com/v2/events-monitor/events",
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-api-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://rest.forestreet.com/v2/events-monitor/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-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://rest.forestreet.com/v2/events-monitor/events")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/events-monitor/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"totalItems": 123,
"totalPages": 13,
"currentPage": 1,
"pageSize": 10,
"unfilteredTotalItems": 196,
"unfilteredTotalPages": 20
},
"data": [
{
"_id": "69e5bfcd21aab5bcbb62eae4",
"title": "China Sees Greater Integration Between Trade and Investment, Creating New Opportunities",
"summary": "China’s foreign trade sector is increasingly integrating trade and investment functions, a trend noted by state broadcaster coverage highlighting evolving policy and market structures. This integration can foster deeper value-chain links, encourage inward and outbound investment tied to trade flows, and create procurement opportunities for multinational firms seeking integrated supply-and-investment strategies. For trading companies and investors, integrated approaches can streamline cross-border operations, facilitate production localization and affect supplier selection and partnership models. The narrative indicates potential opportunities for firms to leverage investment to secure market access, though the story does not provide quantitative data or named project examples.",
"vectorIndex": {
"anchorText": "a government narrative promoting closer alignment of trade and investment to spur commercial opportunities",
"embeddings": [
123
],
"embeddingsModelName": "<string>"
},
"lastUpdated": "2026-04-20T05:38:42.448Z",
"eventSearchKeywords": [
{
"keyword": "China foreign trade",
"propertySource": "inferred"
},
{
"keyword": "investment",
"propertySource": "inferred"
},
{
"keyword": "trade-investment integration",
"propertySource": "inferred"
},
{
"keyword": "supply chain",
"propertySource": "inferred"
},
{
"keyword": "market access",
"propertySource": "inferred"
}
],
"relevantEntities": [
{
"name": "Trade and Investment Integration",
"entityType": "category",
"propertySource": "inferred"
},
{
"name": "Supply Chain Localization",
"entityType": "category",
"propertySource": "inferred"
},
{
"name": "China",
"entityType": "country",
"propertySource": "inferred"
}
],
"timestamps": {
"published": "2026-04-20T05:38:41.505Z",
"recordedStart": "2026-04-19T14:03:00.073Z"
},
"references": [
{
"_id": "69e5b8d17a3ce8b7e8505aa5",
"title": "China’s foreign trade, investment integration generates greater opportunities",
"url": "https://www.globaltimes.cn/page/202604/1359275.shtml"
}
],
"taxonomicMatches": {
"affectedDatapoints": [
{
"name": "Net Supply",
"subject": null,
"direction": "down",
"quantity": null
},
{
"name": "Unit Price",
"subject": "crude oil",
"direction": "up",
"quantity": {
"operator": ">",
"values": [
10
],
"unit": "%"
}
}
],
"alertTypes": [
{
"name": "Geopolitical and Trade",
"mappedFrom": "geopolitical risk",
"method": "llm",
"similarity": 1,
"rationale": "The candidate covers geopolitical risks affecting trade and diplomatic relations."
},
{
"name": "Logistics and Supply Chain",
"mappedFrom": "supply chain dependency",
"method": "llm",
"similarity": 1,
"rationale": "Directly refers to supply chain logistics and dependencies"
}
],
"impactedEntities": [
{
"name": "Trade Finance Services",
"entityType": "category",
"mappedFrom": "trade and investment integration: Strategies that coordinate cross-border trade flows with inward or outward investment decisions.",
"impact": {
"likelihood": 2,
"severity": 1,
"rationale": "Policy emphasis may encourage firms to pursue combined trade/investment approaches, creating commercial opportunities."
}
},
{
"name": "Investment Management",
"entityType": "category",
"mappedFrom": "trade and investment integration: Strategies that coordinate cross-border trade flows with inward or outward investment decisions.",
"impact": {
"likelihood": 2,
"severity": 1,
"rationale": "Policy emphasis may encourage firms to pursue combined trade/investment approaches, creating commercial opportunities."
}
},
{
"name": "Strategy Consulting",
"entityType": "category",
"mappedFrom": "trade and investment integration: Strategies that coordinate cross-border trade flows with inward or outward investment decisions.",
"impact": {
"likelihood": 2,
"severity": 1,
"rationale": "Policy emphasis may encourage firms to pursue combined trade/investment approaches, creating commercial opportunities."
}
}
]
}
}
]
}{
"success": false,
"errorCode": "QUERY_VALIDATION_FAILED",
"message": "Invalid query parameters"
}{
"success": false,
"errorCode": "UNAUTHORISED",
"message": "Unauthorized access - API Key is missing or invalid"
}{
"success": false,
"errorCode": "FORBIDDEN",
"message": "API Key not subscribed to this endpoint"
}{
"success": false,
"errorCode": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}List events
Retrieves a list of events based on the provided query parameters. Supports filtering by date range, taxonomy matches, impacted entity likelihood and severity scores, free-text search, and pagination. By default, only events with at least one impacted entity with likelihood 2-3 and severity 2-3 are returned. Score bounds are inclusive. If date bounds are omitted, the range defaults to the previous UTC day at 00:00 through the current UTC day at 23:59.
Subscription Endpoint
This endpoint has a special subscription requirement. Your API Key needs to be subscribed to this endpoint in order to access it; otherwise it will return a 403 Forbidden error. Please contact Forestreet support to get subscribed.
An Event is a collection of one or more Observations that all refer to the same underlying occurrence. For example, if a company is acquired, there may be multiple news articles about the acquisition, and each article would be an Observation. However, all of these Observations would be grouped under a single Event that represents the acquisition itself.
The grouping of Events is subjective to some extent; a different person may group Observations differently based on their interpretation. Our system uses a community detection algorithm on a graph of Observations linked up by proprietary heuristics to determine which Observations belong to the same Event. These may not always align with everyone’s intuition, and we are continuously working to improve our algorithms and welcome user feedback on any misgroupings they observe.
curl --request GET \
--url https://rest.forestreet.com/v2/events-monitor/events \
--header 'x-api-key: <api-key>'import requests
url = "https://rest.forestreet.com/v2/events-monitor/events"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://rest.forestreet.com/v2/events-monitor/events', 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://rest.forestreet.com/v2/events-monitor/events",
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-api-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://rest.forestreet.com/v2/events-monitor/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-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://rest.forestreet.com/v2/events-monitor/events")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/events-monitor/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"totalItems": 123,
"totalPages": 13,
"currentPage": 1,
"pageSize": 10,
"unfilteredTotalItems": 196,
"unfilteredTotalPages": 20
},
"data": [
{
"_id": "69e5bfcd21aab5bcbb62eae4",
"title": "China Sees Greater Integration Between Trade and Investment, Creating New Opportunities",
"summary": "China’s foreign trade sector is increasingly integrating trade and investment functions, a trend noted by state broadcaster coverage highlighting evolving policy and market structures. This integration can foster deeper value-chain links, encourage inward and outbound investment tied to trade flows, and create procurement opportunities for multinational firms seeking integrated supply-and-investment strategies. For trading companies and investors, integrated approaches can streamline cross-border operations, facilitate production localization and affect supplier selection and partnership models. The narrative indicates potential opportunities for firms to leverage investment to secure market access, though the story does not provide quantitative data or named project examples.",
"vectorIndex": {
"anchorText": "a government narrative promoting closer alignment of trade and investment to spur commercial opportunities",
"embeddings": [
123
],
"embeddingsModelName": "<string>"
},
"lastUpdated": "2026-04-20T05:38:42.448Z",
"eventSearchKeywords": [
{
"keyword": "China foreign trade",
"propertySource": "inferred"
},
{
"keyword": "investment",
"propertySource": "inferred"
},
{
"keyword": "trade-investment integration",
"propertySource": "inferred"
},
{
"keyword": "supply chain",
"propertySource": "inferred"
},
{
"keyword": "market access",
"propertySource": "inferred"
}
],
"relevantEntities": [
{
"name": "Trade and Investment Integration",
"entityType": "category",
"propertySource": "inferred"
},
{
"name": "Supply Chain Localization",
"entityType": "category",
"propertySource": "inferred"
},
{
"name": "China",
"entityType": "country",
"propertySource": "inferred"
}
],
"timestamps": {
"published": "2026-04-20T05:38:41.505Z",
"recordedStart": "2026-04-19T14:03:00.073Z"
},
"references": [
{
"_id": "69e5b8d17a3ce8b7e8505aa5",
"title": "China’s foreign trade, investment integration generates greater opportunities",
"url": "https://www.globaltimes.cn/page/202604/1359275.shtml"
}
],
"taxonomicMatches": {
"affectedDatapoints": [
{
"name": "Net Supply",
"subject": null,
"direction": "down",
"quantity": null
},
{
"name": "Unit Price",
"subject": "crude oil",
"direction": "up",
"quantity": {
"operator": ">",
"values": [
10
],
"unit": "%"
}
}
],
"alertTypes": [
{
"name": "Geopolitical and Trade",
"mappedFrom": "geopolitical risk",
"method": "llm",
"similarity": 1,
"rationale": "The candidate covers geopolitical risks affecting trade and diplomatic relations."
},
{
"name": "Logistics and Supply Chain",
"mappedFrom": "supply chain dependency",
"method": "llm",
"similarity": 1,
"rationale": "Directly refers to supply chain logistics and dependencies"
}
],
"impactedEntities": [
{
"name": "Trade Finance Services",
"entityType": "category",
"mappedFrom": "trade and investment integration: Strategies that coordinate cross-border trade flows with inward or outward investment decisions.",
"impact": {
"likelihood": 2,
"severity": 1,
"rationale": "Policy emphasis may encourage firms to pursue combined trade/investment approaches, creating commercial opportunities."
}
},
{
"name": "Investment Management",
"entityType": "category",
"mappedFrom": "trade and investment integration: Strategies that coordinate cross-border trade flows with inward or outward investment decisions.",
"impact": {
"likelihood": 2,
"severity": 1,
"rationale": "Policy emphasis may encourage firms to pursue combined trade/investment approaches, creating commercial opportunities."
}
},
{
"name": "Strategy Consulting",
"entityType": "category",
"mappedFrom": "trade and investment integration: Strategies that coordinate cross-border trade flows with inward or outward investment decisions.",
"impact": {
"likelihood": 2,
"severity": 1,
"rationale": "Policy emphasis may encourage firms to pursue combined trade/investment approaches, creating commercial opportunities."
}
}
]
}
}
]
}{
"success": false,
"errorCode": "QUERY_VALIDATION_FAILED",
"message": "Invalid query parameters"
}{
"success": false,
"errorCode": "UNAUTHORISED",
"message": "Unauthorized access - API Key is missing or invalid"
}{
"success": false,
"errorCode": "FORBIDDEN",
"message": "API Key not subscribed to this endpoint"
}{
"success": false,
"errorCode": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}Authorizations
Pass a static API key for every request, provided by your customer support.
Query Parameters
Number of items per page, default is 10, minimum is 1, maximum is 100.
1 <= x <= 100Current page number, default is 1.
x >= 1Start of lastUpdated date range (ISO 8601). Defaults to the previous UTC day at 00:00. Date-only values default to 00:00 UTC.
End of lastUpdated date range (ISO 8601). Defaults to the current UTC day at 23:59. Date-only values default to 23:59 UTC.
Comma-separated list of affected datapoint names (OR within, AND with other filters).
Comma-separated list of alert type names (OR within, AND with other filters).
Comma-separated list of impacted entity names (OR within, AND with other filters).
Minimum impacted entity likelihood score, inclusive. Defaults to 2. Score scale is 0 to 3.
0 <= x <= 3Maximum impacted entity likelihood score, inclusive. Defaults to 3. Score scale is 0 to 3.
0 <= x <= 3Minimum impacted entity severity score, inclusive. Defaults to 2. Score scale is 0 to 3.
0 <= x <= 3Maximum impacted entity severity score, inclusive. Defaults to 3. Score scale is 0 to 3.
0 <= x <= 3Response
The response containing pagination metadata, and an array of zero or more events that satisfy the query parameters.
Schema for pagination metadata, including total items, total pages, current page, and page size.
Show child attributes
Show child attributes
{
"totalItems": 123,
"totalPages": 13,
"currentPage": 1,
"pageSize": 10,
"unfilteredTotalItems": 196,
"unfilteredTotalPages": 20
}
A list of events matching the query parameters, within the specified page and page size.
Show child attributes
Show child attributes