Try a signed demo webhook
curl --request POST \
--url https://gdeltcloud.com/api/v2/monitors/demo-webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://gdeltcloud.com/api/v2/monitors/demo-webhook"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://gdeltcloud.com/api/v2/monitors/demo-webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"demo": {
"delivered": true,
"expires_at": "<string>",
"request": {
"headers": {},
"body": {
"schema_version": "1",
"id": "<string>",
"type": "monitor.test",
"created_at": "2023-11-07T05:31:56Z",
"monitor": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"run": null,
"trigger": null,
"data": {
"matches": [
{
"kind": "story",
"item": {
"id": "<string>",
"url": "<string>",
"title": "<string>",
"story_date": "<string>",
"updated_at": "<string>",
"processed_at": "<string>",
"category": "<string>",
"category_code": "<string>",
"subcategory": "<string>",
"geo": {
"country": "<string>",
"region": "<string>",
"continent": "<string>",
"admin1": "<string>",
"location": "<string>",
"latitude": 123,
"longitude": 123,
"geo_precision": 123,
"geo_precision_label": "<string>"
},
"geo_provenance": {
"method": "representative_linked_event",
"event_id": "<string>"
},
"geo_context": {
"location_country": "<string>",
"actor_origin_countries": [
"<string>"
]
},
"metrics": {
"significance": 123,
"article_count": 123,
"linked_event_count": 123,
"max_linked_event_significance": 123,
"civilian_targeting_event_count": 123
},
"has_events": true,
"has_fatalities": true,
"has_civilian_targeting": true,
"fatalities": 123,
"linked_events": [
{
"id": "<string>",
"title": "<string>"
}
],
"entity_refs": [
{
"id": "<string>",
"name": "<string>",
"public_official": {
"checked": true,
"is_public_official": true,
"status": "current",
"total": 123,
"offices": [
{
"office_id": "<string>",
"name": "<string>",
"country_iso3": "<string>",
"status": "current",
"start_date": "<string>",
"end_date": "<string>",
"evidence_date": "<string>",
"sources": [
{
"source_key": "<string>",
"url": "<string>"
}
]
}
],
"truncated": true
}
}
],
"matched_categories": [
{
"code": "<string>",
"label": "<string>"
}
],
"top_articles": [
{
"url": "<string>",
"title": "<string>",
"domain": "<string>",
"rank": 123
}
],
"language_breakdown": [
{
"language": "<string>",
"count": 123
}
],
"top_language": "<string>",
"search_score": 123,
"recorded_at": "<string>",
"published_at": "<string>",
"entity_link": {
"entity": "<string>",
"mode": "coverage",
"via": "story",
"role": "<string>",
"decision": "coverage",
"materiality_confidence": 123,
"resolution_confidence": 123,
"resolution_method": "<string>",
"evidence": null,
"story_date": "<string>",
"story_id": "<string>"
},
"match_type": "semantic"
}
}
]
},
"test": {
"status": "ok",
"message": "GDELT Cloud Monitor webhook test"
},
"links": {
"monitor": "<string>",
"run": null
}
},
"raw_body": "<string>"
},
"signature": {
"algorithm": "HMAC-SHA256",
"verified": true
},
"response": {
"status": 123,
"body": "<unknown>",
"body_truncated": true
},
"error": "<string>"
}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}Monitors
Try a signed demo webhook
Explicitly sends one sample monitor.test event to GDELT Cloud’s temporary first-party receiver and returns the signed request and verified response. Takes only an optional name; no customer URL, email or Monitor ID is accepted. Creates no saved Monitor and sends no email. The receiver capability expires after 120 seconds and is not returned. This demonstrates signed transport only, not query matching, scheduling or retries. Costs 0 QU; limited to 20 attempts per organization per hour. Requires authenticated organization access and the Monitor policy gate. Preview remains non-delivering. Takes no query parameters.
POST
/
api
/
v2
/
monitors
/
demo-webhook
Try a signed demo webhook
curl --request POST \
--url https://gdeltcloud.com/api/v2/monitors/demo-webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://gdeltcloud.com/api/v2/monitors/demo-webhook"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://gdeltcloud.com/api/v2/monitors/demo-webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"demo": {
"delivered": true,
"expires_at": "<string>",
"request": {
"headers": {},
"body": {
"schema_version": "1",
"id": "<string>",
"type": "monitor.test",
"created_at": "2023-11-07T05:31:56Z",
"monitor": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"run": null,
"trigger": null,
"data": {
"matches": [
{
"kind": "story",
"item": {
"id": "<string>",
"url": "<string>",
"title": "<string>",
"story_date": "<string>",
"updated_at": "<string>",
"processed_at": "<string>",
"category": "<string>",
"category_code": "<string>",
"subcategory": "<string>",
"geo": {
"country": "<string>",
"region": "<string>",
"continent": "<string>",
"admin1": "<string>",
"location": "<string>",
"latitude": 123,
"longitude": 123,
"geo_precision": 123,
"geo_precision_label": "<string>"
},
"geo_provenance": {
"method": "representative_linked_event",
"event_id": "<string>"
},
"geo_context": {
"location_country": "<string>",
"actor_origin_countries": [
"<string>"
]
},
"metrics": {
"significance": 123,
"article_count": 123,
"linked_event_count": 123,
"max_linked_event_significance": 123,
"civilian_targeting_event_count": 123
},
"has_events": true,
"has_fatalities": true,
"has_civilian_targeting": true,
"fatalities": 123,
"linked_events": [
{
"id": "<string>",
"title": "<string>"
}
],
"entity_refs": [
{
"id": "<string>",
"name": "<string>",
"public_official": {
"checked": true,
"is_public_official": true,
"status": "current",
"total": 123,
"offices": [
{
"office_id": "<string>",
"name": "<string>",
"country_iso3": "<string>",
"status": "current",
"start_date": "<string>",
"end_date": "<string>",
"evidence_date": "<string>",
"sources": [
{
"source_key": "<string>",
"url": "<string>"
}
]
}
],
"truncated": true
}
}
],
"matched_categories": [
{
"code": "<string>",
"label": "<string>"
}
],
"top_articles": [
{
"url": "<string>",
"title": "<string>",
"domain": "<string>",
"rank": 123
}
],
"language_breakdown": [
{
"language": "<string>",
"count": 123
}
],
"top_language": "<string>",
"search_score": 123,
"recorded_at": "<string>",
"published_at": "<string>",
"entity_link": {
"entity": "<string>",
"mode": "coverage",
"via": "story",
"role": "<string>",
"decision": "coverage",
"materiality_confidence": 123,
"resolution_confidence": 123,
"resolution_method": "<string>",
"evidence": null,
"story_date": "<string>",
"story_id": "<string>"
},
"match_type": "semantic"
}
}
]
},
"test": {
"status": "ok",
"message": "GDELT Cloud Monitor webhook test"
},
"links": {
"monitor": "<string>",
"run": null
}
},
"raw_body": "<string>"
},
"signature": {
"algorithm": "HMAC-SHA256",
"verified": true
},
"response": {
"status": 123,
"body": "<unknown>",
"body_truncated": true
},
"error": "<string>"
}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}Authorizations
GDELT Cloud API key. Send as Authorization: Bearer gdelt_sk_....
Body
application/json
Required string length:
1 - 100⌘I

