Skip to main content

Alerts

Create, manage, and test intent alert rules. Alerts automatically notify you when new domains match your criteria (industry, country, intent score, tech signals).

API Playground

tip

Try this endpoint live in the API Playground.

Endpoints

MethodEndpointDescription
GET/v1/alertsList your alert rules
POST/v1/alertsCreate an alert rule
PUT/v1/alerts/{id}Update an alert rule
DELETE/v1/alerts/{id}Delete an alert rule
GET/v1/alerts/historyView alert trigger history
POST/v1/alerts/{id}/testTest an alert rule

Plan Limits

PlanMax Alert Rules
Free1
Starter5
Pro25
Enterprise100

List Alerts

GET /v1/alerts

Returns all your alert rules with plan limit info.

Example Request

curl -H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/alerts"

Response

{
"data": [
{
"id": 1,
"name": "US SaaS Leads",
"filters": {
"industry": "Technology",
"country": "US",
"min_intent_score": 60,
"required_signals": ["has_analytics", "has_crm"]
},
"delivery_channels": {
"email": true,
"slack": false,
"in_app": true
},
"is_active": true,
"last_triggered_at": "2026-03-20T14:30:00Z",
"created_at": "2026-03-15T10:00:00Z"
}
],
"plan_limit": 25,
"plan": "pro"
}

Create Alert

POST /v1/alerts

Body Parameters

ParameterTypeRequiredDescription
namestringYesAlert name (1–200 chars)
filtersobjectNoFilter criteria (see below)
delivery_channelsobjectNoNotification channels
is_activebooleanNoEnable/disable (default: true)

Filter Object

FieldTypeDefaultDescription
industrystringnullIndustry to match (e.g., "Technology")
countrystringnullISO country code (e.g., "US")
min_intent_scoreinteger50Minimum intent score (0–100)
required_signalsstring[][]Tech signals that must be present

Delivery Channels Object

FieldTypeDefaultDescription
emailbooleantrueSend email notifications
slackbooleanfalseSend Slack notifications
in_appbooleantrueShow in-app notifications

Example Request

curl -X POST \
-H "Authorization: Bearer cdb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "European E-commerce",
"filters": {
"industry": "E-commerce",
"country": "DE",
"min_intent_score": 70,
"required_signals": ["has_ecommerce", "has_payments"]
},
"delivery_channels": {
"email": true,
"slack": true,
"in_app": true
}
}' \
"https://api.crondb.com/v1/alerts"
import requests

response = requests.post(
"https://api.crondb.com/v1/alerts",
headers={"Authorization": "Bearer cdb_your_api_key_here"},
json={
"name": "European E-commerce",
"filters": {
"industry": "E-commerce",
"country": "DE",
"min_intent_score": 70,
"required_signals": ["has_ecommerce", "has_payments"],
},
"delivery_channels": {"email": True, "slack": True, "in_app": True},
},
)
alert = response.json()
print(f"Alert created: {alert['id']}")
const response = await fetch("https://api.crondb.com/v1/alerts", {
method: "POST",
headers: {
Authorization: "Bearer cdb_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "European E-commerce",
filters: {
industry: "E-commerce",
country: "DE",
min_intent_score: 70,
required_signals: ["has_ecommerce", "has_payments"],
},
delivery_channels: { email: true, slack: true, in_app: true },
}),
});
const alert = await response.json();

Response (201)

{
"id": 5,
"name": "European E-commerce",
"filters": {
"industry": "E-commerce",
"country": "DE",
"min_intent_score": 70,
"required_signals": ["has_ecommerce", "has_payments"]
},
"delivery_channels": {
"email": true,
"slack": true,
"in_app": true
},
"is_active": true,
"last_triggered_at": null,
"created_at": "2026-03-22T10:00:00Z"
}

Update Alert

PUT /v1/alerts/{alert_id}

Partial updates supported — only send the fields you want to change.

Example Request

curl -X PUT \
-H "Authorization: Bearer cdb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"is_active": false}' \
"https://api.crondb.com/v1/alerts/5"

Delete Alert

DELETE /v1/alerts/{alert_id}

Returns 204 No Content on success.

curl -X DELETE \
-H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/alerts/5"

Alert History

GET /v1/alerts/history

View recent alert triggers — which domains matched which alert rules.

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger20Results per page (max 100)
alert_idintegernullFilter by specific alert

Response

{
"data": [
{
"id": 42,
"alert_id": 1,
"alert_name": "US SaaS Leads",
"matched_domains": [
{
"domain": "newstartup.com",
"intent_score": 78,
"level": "hot",
"signals": ["Analytics", "CRM", "Live Chat"],
"likely_buys": ["Marketing Automation", "SEO Tools"]
}
],
"delivered_via": {"email": true, "in_app": true},
"created_at": "2026-03-20T14:30:00Z"
}
],
"total": 156,
"page": 1,
"pages": 8
}

Test Alert

POST /v1/alerts/{alert_id}/test

Preview which domains currently match an alert's filters (returns up to 10 results).

Response

{
"alert_id": 1,
"alert_name": "US SaaS Leads",
"matched_count": 7,
"matched_domains": [
{
"domain": "example-saas.com",
"intent_score": 85,
"level": "hot",
"signals": ["Analytics", "CRM", "Chat Widget"],
"gaps": ["Needs Email Marketing"],
"likely_buys": ["Email Marketing", "A/B Testing"]
}
]
}

Available Signals

Use these values in required_signals:

SignalDescription
has_analyticsGoogle Analytics, Mixpanel, etc.
has_crmSalesforce, HubSpot, etc.
has_ecommerceShopify, WooCommerce, etc.
has_chat_widgetIntercom, Drift, etc.
has_email_marketingMailchimp, SendGrid, etc.
has_paymentsStripe, PayPal, etc.
has_helpdeskZendesk, Freshdesk, etc.
has_cdnCloudflare, Fastly, etc.
has_sslSSL certificate detected
has_formsForm builders detected
has_adsGoogle Ads, Facebook Ads, etc.
has_seo_toolsSEO platforms detected
has_ab_testingOptimizely, VWO, etc.
has_apiPublic API detected

Next Steps