Create Monitor
curl --request POST \
--url https://gdeltcloud.com/api/v2/monitors \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"subject": {
"params": {},
"type": "query"
},
"trigger": {
"type": "new_matches"
},
"schedule": {
"timezone": "UTC",
"daily_hour": 8
},
"delivery": {
"email": true,
"webhook_url": "<string>"
}
}
'import requests
url = "https://gdeltcloud.com/api/v2/monitors"
payload = {
"name": "<string>",
"subject": {
"params": {},
"type": "query"
},
"trigger": { "type": "new_matches" },
"schedule": {
"timezone": "UTC",
"daily_hour": 8
},
"delivery": {
"email": True,
"webhook_url": "<string>"
}
}
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({
name: '<string>',
subject: {params: {}, type: 'query'},
trigger: {type: 'new_matches'},
schedule: {timezone: 'UTC', daily_hour: 8},
delivery: {email: true, webhook_url: '<string>'}
})
};
fetch('https://gdeltcloud.com/api/v2/monitors', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"monitor": {
"id": "5e1d3b89-9c34-4fa1-80fc-17f72f782b33",
"organization_id": "88949d2a-4f00-45cb-9d23-2d242ddfe74d",
"created_by": "c6951b53-952b-40bf-99fd-c9d97a176f38",
"name": "Port disruption watch",
"description": "New Events coding port closures and shipping disruption in the United States.",
"enabled": true,
"subject": {
"type": "topic"
},
"criteria": {
"data": "events",
"search": "port closure shipping disruption",
"countries": [
"USA"
],
"family_filters": {
"cameoplus": {
"domains": [
"INFRASTRUCTURE"
],
"subcategories": []
}
},
"fatalities_only": false
},
"trigger": {
"type": "new_matches"
},
"schedule": {
"cadence": "hourly",
"timezone": "UTC",
"daily_hour": 8
},
"delivery": {
"email": true,
"webhook": {
"configured": true,
"endpoint": "https://example.com/gdelt-webhook",
"consecutive_failures": 0,
"last_success_at": "2026-08-23T14:05:00.000Z",
"last_failure_at": null
}
},
"created_at": "2026-08-23T13:00:00.000Z",
"updated_at": "2026-08-23T14:05:00.000Z",
"last_checked_at": "2026-08-23T14:00:00.000Z",
"last_triggered_at": "2026-08-23T14:00:00.000Z",
"legacy": false
},
"webhook_signing_secret": "whsec_returned_only_once"
}{
"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
Create Monitor
Create one organization-shared Monitor. When a webhook destination is first configured, webhook_signing_secret is returned once.
POST
/
api
/
v2
/
monitors
Create Monitor
curl --request POST \
--url https://gdeltcloud.com/api/v2/monitors \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"subject": {
"params": {},
"type": "query"
},
"trigger": {
"type": "new_matches"
},
"schedule": {
"timezone": "UTC",
"daily_hour": 8
},
"delivery": {
"email": true,
"webhook_url": "<string>"
}
}
'import requests
url = "https://gdeltcloud.com/api/v2/monitors"
payload = {
"name": "<string>",
"subject": {
"params": {},
"type": "query"
},
"trigger": { "type": "new_matches" },
"schedule": {
"timezone": "UTC",
"daily_hour": 8
},
"delivery": {
"email": True,
"webhook_url": "<string>"
}
}
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({
name: '<string>',
subject: {params: {}, type: 'query'},
trigger: {type: 'new_matches'},
schedule: {timezone: 'UTC', daily_hour: 8},
delivery: {email: true, webhook_url: '<string>'}
})
};
fetch('https://gdeltcloud.com/api/v2/monitors', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"monitor": {
"id": "5e1d3b89-9c34-4fa1-80fc-17f72f782b33",
"organization_id": "88949d2a-4f00-45cb-9d23-2d242ddfe74d",
"created_by": "c6951b53-952b-40bf-99fd-c9d97a176f38",
"name": "Port disruption watch",
"description": "New Events coding port closures and shipping disruption in the United States.",
"enabled": true,
"subject": {
"type": "topic"
},
"criteria": {
"data": "events",
"search": "port closure shipping disruption",
"countries": [
"USA"
],
"family_filters": {
"cameoplus": {
"domains": [
"INFRASTRUCTURE"
],
"subcategories": []
}
},
"fatalities_only": false
},
"trigger": {
"type": "new_matches"
},
"schedule": {
"cadence": "hourly",
"timezone": "UTC",
"daily_hour": 8
},
"delivery": {
"email": true,
"webhook": {
"configured": true,
"endpoint": "https://example.com/gdelt-webhook",
"consecutive_failures": 0,
"last_success_at": "2026-08-23T14:05:00.000Z",
"last_failure_at": null
}
},
"created_at": "2026-08-23T13:00:00.000Z",
"updated_at": "2026-08-23T14:05:00.000Z",
"last_checked_at": "2026-08-23T14:00:00.000Z",
"last_triggered_at": "2026-08-23T14:00:00.000Z",
"legacy": false
},
"webhook_signing_secret": "whsec_returned_only_once"
}{
"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
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
At least one delivery channel is required. Omit email to accept its true default, set email=true, or provide webhook_url.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Set false to save paused without scheduling. Omission preserves automatic activation when a running slot is available.
⌘I

