curl --request GET \
--url https://gdeltcloud.com/api/v2/facilities/{facility_id}/context \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/facilities/{facility_id}/context"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://gdeltcloud.com/api/v2/facilities/{facility_id}/context', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"facility": {
"facility_id": "f_4fbf12b61b2f45a9",
"name": "Example Power Station",
"country": "USA",
"latitude": 40.71,
"longitude": -74.01
},
"events": [],
"entities": []
},
"meta": {
"coverage": {
"events_measured": 0
},
"window": {
"days": 30
}
}
}Facility context
A facility fused with its OWNER’s media coverage, plus optional nearby reporting and government exposure. Returns owner_events — events about the owner, NOT events located at the site. When the owner cannot be resolved or cannot be bridged to the news layer, the arrays are null rather than empty, so “we did not look” is never mistaken for “we looked and found nothing”. Coverage unions the checked owners or their recorded parents, preserving typed paths, stakes and sources in owner.coverage_paths; a minority ownership path does not establish control. Summary counts describe the returned Event preview and its linked Stories, not all matches. Multiple coverage entities leave the legacy singular owner id/name null; optional government footprints are not aggregated across them. Oversized or unavailable scopes are reported explicitly. Name-only owners receive separate reported_owner_matches and reported_owner_events/stories when an exact reference name or alias identifies one entity. This best-effort discovery never verifies ownership or changes resolved-owner coverage.
Parameters this endpoint deliberately rejects (1)
Parameters this endpoint deliberately rejects (1)
These return a 400 naming the reason and the alternative, so a filter that cannot work fails loudly instead of returning rows that ignore it.
as_of→ 400 UNSUPPORTED_PARAM. Facility ownership is not vintaged — the directory records the latest known owner and prior owners are not yet reconstructable as-of, so an as_of result here would not be reproducible. Use instead:/api/v2/intelligence/gpr?as_of=,/api/v2/macro/*?as_of=.
curl --request GET \
--url https://gdeltcloud.com/api/v2/facilities/{facility_id}/context \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/facilities/{facility_id}/context"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://gdeltcloud.com/api/v2/facilities/{facility_id}/context', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"facility": {
"facility_id": "f_4fbf12b61b2f45a9",
"name": "Example Power Station",
"country": "USA",
"latitude": 40.71,
"longitude": -74.01
},
"events": [],
"entities": []
},
"meta": {
"coverage": {
"events_measured": 0
},
"window": {
"days": 30
}
}
}Authorizations
GDELT Cloud API key. Send as Authorization: Bearer gdelt_sk_....
Path Parameters
The facility id.
Query Parameters
Owner-coverage window in days, max 30. Also accepts: window. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
Explicit start of the owner-coverage window. Also accepts: start_date. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
Explicit end of the owner-coverage window. Also accepts: end_date. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
Maximum owner events to attach. Default 10, max 50. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
1 <= x <= 50Optional extra blocks. gov attaches the owner's federal-award / FARA / sanctions footprint. An unentitled plan degrades the block to null with a sources_unavailable entry — it never 403s the whole response. nearby attaches Events within radius_km and their linked Stories. Nearby reporting is a geographic lead, not a confirmed incident at the site. Full value list: https://docs.gdeltcloud.com/reference/enums#facility_context_include
gov, nearby Geographic screening radius in kilometres for include=nearby. Default 25, range 1–250. Source coordinate precision is disclosed.
1 <= x <= 250Response
Success
true Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Bounded reporting about owners and recorded parents; not events at the site. Null means unmeasured.
Show child attributes
Show child attributes
Stories referenced by the returned owner Events; not an exhaustive owner Story search.
Show child attributes
Show child attributes
Counts of the returned owner preview, not all matches.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Exact reference-name identity discovery for name-only owners; does not verify facility ownership.
Show child attributes
Show child attributes
Separate best-effort reporting for exact reported-name matches; never promoted to resolved owner_events.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Optional geographic leads within radius_km; never proof of an incident at the site.
Show child attributes
Show child attributes
Show child attributes
Show child attributes

