Authentication
Every/api/v2/* request authenticates with a Bearer API key:
Result coverage
Event, Story, and Entity list endpoints default to the exact past 24 hours while preserving broad discovery coverage, so you can find useful records before narrowing with structured filters. Confidence tuning is handled internally. Detail endpoints remain exhaustive by ID:GET /api/v2/events/{event_id} and GET /api/v2/stories/{story_id} resolve known records directly.
Explicit date_start/date_end windows filter by event/story date and may not exceed 30 days.
Geography
Use plain-English country names in calls; ISO-3 and legacy FIPS aliases are accepted, but responses normalize country output to the plain-English name.region and continent expand to ISO-3 country lists on the backend. Event queries match those
countries against Event location plus actor-origin countries; Story queries use the same expansion
through linked-Event location only. admin1 is optional and filters only the event/story location.
The geo object is the primary event/story location. For Events, when a broad geo filter matches
actor-origin geography instead, geo_context.actor_origin_countries shows why the record matched. For
Stories, geo_context.actor_origin_countries is returned for context but does not drive the geo filter.
See Taxonomy & Codes → Geography for the full continent and region
enums.
Bounding box
Usebbox for sub-country filters such as straits, ports, basins, border zones, or any custom viewport.
It is a comma-separated string in latitude-first order:
lat must be in [-90, 90] and lon in [-180, 180]. The filter applies to the Event’s primary
geo.latitude/geo.longitude (and to linked-Event locations for Stories). Records without geocoded
coordinates are excluded from bbox queries.
bbox is supported on /api/v2/events, /api/v2/events/summary, /api/v2/stories, and
/api/v2/stories/summary. /api/v2/energy/assets accepts the same lat-first bbox plus a separate
near=lat,lon,radius_km proximity filter.
Response objects
List endpoints return a success envelope withdata and pagination; detail endpoints return a single
data object; summary endpoints return group_by and grouped data buckets.
Event card
Returned byGET /api/v2/events and GET /api/v2/events/{event_id}.
Story card
Returned byGET /api/v2/stories and GET /api/v2/stories/{story_id}.
Summary buckets
The Event summary bucket and Story summary bucket are returned byGET /api/v2/events/summary
and GET /api/v2/stories/summary. Buckets carry simple counts
plus nested aggregate statistics (metrics / metric_stats) for the inputs behind significance:
Goldstein scale/severity, CAMEO+ magnitude/systemic/propagation/market, confidence, article evidence, and
fatality counts/rates.
story_count, stories_with_events,
story_only_count, linked-event counts, avg_recency_score, and nested metrics.linked_events.
linked_event_count is the number of Story-to-Event links, not a second Event total — use
event_count from Event summaries for distinct Events. Summary endpoints do not accept search.
Articles, entities, admin1, and errors
Story article rows include sourcedomain, domain_avatar_url, image_url (when available), rank,
and role. Entity cards are canonical, deduplicated by Wikipedia URL — multiple raw-name variants
(“Trump” + “Donald Trump”) collapse to one card; only People and Organizations with linked Wikipedia
pages are surfaced.
The id is a universal canonical id — an e_… id when the entity exists in the cross-source
reference spine (the same id GET /api/v2/search returns), otherwise a wiki:… id for the news-only
tail. Either form round-trips on every entity-taking endpoint (/events?entity=, /entity-tone,
/share-of-voice, /gov/awards?entity=, entity detail), so you can chain calls without remapping. The
Wikipedia URL is still returned as the wikipedia_url field.
Raw per-article mention counts and entity salience scores are not part of the v2 entity contract.
GDELT Cloud surfaces aggregated Story, Article, and Event counts as the canonical activity signals.
GET /api/v2/geo/admin1 returns a per-country list:
error, a stable code, and details with accepted_values,
nearest_values when practical, and a corrected example so agents can retry without guessing:
subcategory requires its parent category; for CAMEO+ categories, prefer stable event codes such as
TE01 over label text. The legacy event_family and domain parameters are still accepted but
deprecated — category implies Conflict vs. CAMEO+.
Entity aliases and resolution
GDELT Cloud resolves observed names — reordered names, initials, acronyms, common abbreviations — to a single canonical entity through a proprietary resolution layer. Wikipedia-linked entities carry stable canonical identifiers. Newly observed candidates enter the registry asneeds_review and are promoted to
active once they meet confidence criteria, so workflows can distinguish “known entity with no score
yet” from “entity not found.”
Finding an entity when you don’t know the exact name
scope chooses which registries to search:
scope=media(default) — news-resolved entities only (people & organizations seen in coverage).scope=reference— the structured registry only (GEM energy owners, SEC/EDGAR filers, restricted-party list entries, China financiers).scope=all— everything: news + GEM + SEC/EDGAR + lists + China, deduplicated and ranked.
entity_id, display name, type, country, match reason, score). Resolve
once, then fan out across the event, energy, screening, and filings surfaces using the shared
entity_id. The matching index covers the full registry even for entities with no Wikipedia page yet.
Ranking
The default sort issort=significance. Event significance is a family-scoped weighted blend,
renormalized so every event family spans a true 0–1: each event’s raw total is divided by the maximum its own
family can reach (Conflict 1.00, CAMEO+ POLITICAL 0.90, other CAMEO+ domains 0.65).
When
magnitude is unmeasured, both its term and its 0.20 weight are dropped for that event. The four
CAMEO+ inputs are rubric scores produced by fixed published formulas — ordinal ranking signals, not
measurements, probabilities, or predicted price moves (see
Event metric filters).
goldstein_scale is the signed −10…+10 scale; goldstein_severity is abs(goldstein_scale) and exists
as an aggregate/statistical helper for significance inputs. Story significance combines linked-Event
significance, capped article count, and recency. Use sort=recent when freshness matters more than
significance.
goldstein_scale is exposed as one canonical public Event metric — present for all Conflict Events and
CAMEO+ POLITICAL Events, null for non-political CAMEO+ domains where it is not meaningful.
