Intent Signals
Retrieve buying intent signals for a domain based on technology adoption patterns, website changes, and behavioral indicators.

Endpoint
GET /v1/intent
Request
Headers
| Header | Value |
|---|---|
| Authorization | Bearer cdb_your_api_key |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to analyze |
Example Request
curl -H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/intent?domain=growingcompany.com"
Python
import requests
response = requests.get(
"https://api.crondb.com/v1/intent",
params={"domain": "growingcompany.com"},
headers={"Authorization": "Bearer cdb_your_api_key_here"},
)
data = response.json()
print(f"Intent Score: {data['intent_score']}")
for signal in data["signals"]:
print(f" - {signal['type']}: {signal['description']}")
Node.js
const response = await fetch(
"https://api.crondb.com/v1/intent?domain=growingcompany.com",
{ headers: { Authorization: "Bearer cdb_your_api_key_here" } }
);
const data = await response.json();
console.log(`Intent: ${data.intent_score} (${data.intent_level})`);
data.signals.forEach((s) => console.log(` - ${s.type}: ${s.description}`));
Ruby
require 'net/http'
require 'json'
uri = URI("https://api.crondb.com/v1/intent?domain=growingcompany.com")
req = Net::HTTP::Get.new(uri)
req['Authorization'] = 'Bearer cdb_your_api_key_here'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
puts "Intent: #{data['intent_score']} (#{data['intent_level']})"
data['signals'].each { |s| puts " - #{s['type']}: #{s['description']}" }
Response
{
"domain": "growingcompany.com",
"intent_score": 78,
"intent_level": "high",
"signals": [
{
"type": "tech_adoption",
"description": "Added Stripe payment processing",
"strength": "strong",
"detected_at": "2026-03-15T00:00:00Z"
},
{
"type": "rapid_growth",
"description": "Added 4 new technologies in the last 30 days",
"strength": "strong",
"detected_at": "2026-03-10T00:00:00Z"
},
{
"type": "ecommerce_launch",
"description": "E-commerce platform detected (Shopify)",
"strength": "moderate",
"detected_at": "2026-03-12T00:00:00Z"
},
{
"type": "hiring",
"description": "Careers page or job listings detected",
"strength": "moderate",
"detected_at": "2026-03-08T00:00:00Z"
}
],
"tech_velocity": {
"last_30_days": 4,
"last_90_days": 7,
"trend": "accelerating"
},
"last_analyzed": "2026-03-17T08:00:00Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
domain | string | The queried domain |
intent_score | integer | Overall intent score (0-100) |
intent_level | string | low, medium, high, or very_high |
signals | array | Individual intent signals detected |
tech_velocity | object | Rate of technology adoption |
last_analyzed | string | When the intent data was last computed |
Signal Types
| Signal Type | Description | Strength Impact |
|---|---|---|
tech_adoption | New technology added to stack | +10-20 points |
rapid_growth | Multiple new technologies in short period | +15-25 points |
ecommerce_launch | E-commerce platform detected | +10-15 points |
hiring | Careers page or job listings | +5-10 points |
funding | Investor or funding page detected | +10-15 points |
expansion | Multi-language or multi-region pages | +5-10 points |
rebrand | Domain content significantly changed | +5-10 points |
competitor_switch | Switched from a competing product | +15-20 points |
Signal Strength
| Strength | Description |
|---|---|
strong | Clear, unambiguous signal |
moderate | Probable signal, some uncertainty |
weak | Possible signal, needs verification |
Intent Levels
| Level | Score Range | Description |
|---|---|---|
very_high | 80-100 | Multiple strong buying signals |
high | 60-79 | Clear interest indicators |
medium | 30-59 | Some activity detected |
low | 0-29 | Minimal signals |
Tech Velocity
| Field | Description |
|---|---|
last_30_days | Technologies added in the last 30 days |
last_90_days | Technologies added in the last 90 days |
trend | accelerating, stable, or decelerating |
Errors
| Status | Detail | Cause |
|---|---|---|
| 400 | Invalid domain format | Domain is malformed |
| 401 | Invalid API key | Authentication failed |
| 404 | Domain not found | Domain not in CronDB database |
| 429 | Rate limit exceeded | Too many requests |
Notes
- Each intent request counts as 1 API query
- Intent scores are recalculated periodically as new data arrives
- Signals are time-sensitive — recent signals contribute more to the score
- Use intent data alongside scoring rules for the most effective lead prioritization
Next Steps
- Scoring API — Combine intent with custom scoring rules
- Tech Stack — See the full technology profile
- Intent Alerts — Get notified about high-intent domains