Entity tone (by entity)
Media tone toward a specific entity over a date window, with optional cited evidence. Requires a plan with Entity media tone access (can_use_tone) — see Pricing for the plans that include it.
bucket is not a parameter of this endpoint. Entity tone is always DAILY. The series is scored per entity per story per day and the response carries bucket_granularity: "day" on every row; there is no weekly or monthly aggregation to request. The spec previously advertised bucket=day|week|month, which the service never parsed — bucket=month returned daily rows with a 200. Aggregate on your side, or narrow the window with date_start/date_end.
quality is not a parameter of this endpoint. Not applied. Entity tone rows are served as scored; there is no quality tier to select. Filter on the score_status and confidence fields carried on each row instead.
Authorizations
GDELT Cloud API key. Send as Authorization: Bearer gdelt_sk_....
Path Parameters
Canonical entity id or wikipedia_url.
Query Parameters
Window start YYYY-MM-DD. The inclusive date span may not exceed 30 days.
Window end YYYY-MM-DD. The inclusive date span may not exceed 30 days.
Trailing N-day window (1–30).
1 <= x <= 30Comma-separated language filter (e.g. en,zh). Accepted codes: Taxonomy & Codes — Languages. Observed vocabulary, measured 2026-08-10 (77 distinct values). Values outside it are accepted, not rejected. Discover current values: GET /api/v2/stories?limit=1 — readcoverage.languages``. The languages the corpus actually carries, canonicalized toward ISO 639-1 (639-2 codes are folded to their 2-letter form, and a long tail of 639-3 codes survives for outlets that have no 639-1 code). The filter validates SHAPE, not membership: it rejects only a token that cannot be an ISO code — a normalized value longer than 3 characters, so languages=english is a 400 while languages=zz is an accepted, empty 200. A code absent from this list may still be valid; it just had no coverage in the measured window. Values seen in the corpus: https://docs.gdeltcloud.com/reference/enums#coverage_language
Story category filter (CSV). Same vocabulary as /api/v2/share-of-voice?category= and /api/v2/stories?story_category= — see Taxonomy & Codes. An unrecognised value returns 400 INVALID_ENUM with accepted_values. Omitted means all categories. Answered from the per-cluster tone rollup, so it narrows the time series AND the evidence samples together.
Return cited evidence snippets.
Max rows.
Minimum per-bucket tone confidence to include (0–1).
0 <= x <= 1Response
Entity tone (by entity).
One card per scored story, returned when include_evidence=true. Capped by evidence_limit.
Tone per evidence language over the FULL scored window (not the evidence sample), split by evidence source.

