curl --request GET \
--url https://gdeltcloud.com/api/v2/intelligence/posture \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/intelligence/posture"
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/intelligence/posture', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"level": "country",
"geo_id": "UKR",
"geo_name": "Ukraine",
"window": "30d",
"window_days": 30,
"as_of": null,
"date_end": "2026-08-23",
"methodology_version": "atlas-posture-1.0.0",
"status": "provisional",
"posture": {
"score": 73.2,
"band": "severe",
"dynamic": 81.4,
"structural": 54.1,
"axis_basis": "combined",
"coverage_events": 2180
},
"data_unavailable": false
}Atlas Posture — country condition and annual context
A 0–100 condition score with explicit dynamic and structural axes. Sparse Event windows retain null dynamic scores. Available annual WDI/WGI/V-Dem indicators can supply a structural-only headline, marked best_effort with its evidence note, indicator count and vintage. Headline insufficient_data means neither axis has a score. Annual indicators use fixed absolute anchors; dynamic indicators use frozen cross-country or absolute references. as_of constrains dynamic observations, not the latest annual indicators or frozen normalization; this is not a fully point-in-time structural backtest.
curl --request GET \
--url https://gdeltcloud.com/api/v2/intelligence/posture \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/intelligence/posture"
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/intelligence/posture', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"level": "country",
"geo_id": "UKR",
"geo_name": "Ukraine",
"window": "30d",
"window_days": 30,
"as_of": null,
"date_end": "2026-08-23",
"methodology_version": "atlas-posture-1.0.0",
"status": "provisional",
"posture": {
"score": 73.2,
"band": "severe",
"dynamic": 81.4,
"structural": 54.1,
"axis_basis": "combined",
"coverage_events": 2180
},
"data_unavailable": false
}Authorizations
GDELT Cloud API key. Send as Authorization: Bearer gdelt_sk_....
Query Parameters
Country ISO3 shortcut. Takes precedence over geo. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
Spatial aggregation of the structural and dynamic posture evidence. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply. Full value list: https://docs.gdeltcloud.com/reference/enums#atlas_level
world, continent, region, country Place appropriate to level, using a country ISO-3 code or a returned region/continent name. For level=world, omit geo; a supplied country selects the country view. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
Dynamic evidence scope to include in posture calculations. Omission includes all scopes. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply. Full value list: https://docs.gdeltcloud.com/reference/enums#atlas_posture_scope
all, internal, external Measurement window for the dynamic posture axis. Accepted values: 7d, 30d.
7d, 30d How country observations contribute to the geographic rollup; a country view is not an aggregate and the response discloses fallback behavior. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply. Full value list: https://docs.gdeltcloud.com/reference/enums#atlas_weighting
attention, gdp Window end date. Omission uses the latest computed observations. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
Observation vintage cutoff. Structural inputs and normalization are not a historical snapshot; inspect response limitations. Note: validation is owned by the endpoint service because it depends on composed or cross-parameter state; the published error semantics above still apply.
Response
Posture score, pillars, and trend.
Selected geographic aggregation.
Resolved geography identifier.
Readable geography name.
Selected window label.
Length of the observation window in days.
Requested inclusive UTC window end; null selects the latest available window.
Point-in-time numerator date; null means no historical numerator restriction.
Read the two evidence axes separately; structural-only best effort is not current reporting.
Show child attributes
Show child attributes
Dated structural indicators and their basis, preserving missing measurements.
Show child attributes
Show child attributes
Dynamic counts can respect as_of while normalization is not a historical snapshot; retain this limitation.
Show child attributes
Show child attributes

