Endpoint Playground
Returns a sentiment histogram for the required GDELT `query`: one bin per integer tone value, each with an article `count` and a short sample of top articles with title and URL. Filter with `country`, `language`, `domain`, and `timespan` or `from` and `to`. A tone value with no matching articles is absent rather than returned with a zero count.
14 Oct 2026: 40 bins; 2 fields had a value in every checked item and 1 varied between items.
Sample value profiles: bin: -23 to 16, median -4; top_articles: median 10 entries; count: 0 to 16,448, median 108.
curl 'https://api.crawlora.net/api/v1/gdelt/tonechart?query=climate+change' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| query | string | Yes | climate change | GDELT query string. Same syntax as gdelt-search's query. |
| country | string | No | Convenience source-country filter, appended to the query as sourcecountry:VALUE. | |
| language | string | No | Convenience source-language filter, appended to the query as sourcelang:VALUE. | |
| domain | string | No | Convenience domain filter, appended to the query as domain:VALUE. | |
| timespan | string | No | Relative time window ending now, e.g. 1h, 2d, 1w, 3m. Cannot be combined with from/to. | |
| from | string | No | Start of an absolute time window. Accepts YYYY-MM-DD, RFC3339, or GDELT's raw YYYYMMDDHHMMSS. Cannot be combined with timespan. | |
| to | string | No | End of an absolute time window. Same formats as from. |
{
"code": 200,
"msg": "OK",
"data": {
"query": "climate change",
"source_url": "https://api.gdeltproject.org/api/v2/doc/doc?format=json&mode=tonechart&query=climate+change",
"fetched_at": "2026-08-20T10:00:00Z",
"bins": [
{
"bin": -5,
"count": 12,
"top_articles": [
{
"url": "https://www.example.com/news/climate-report",
"title": "Climate report warns of rising sea levels"
}
]
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.