Skip to main content

Domain Enrichment

Retrieve comprehensive enrichment data for a single domain, including AI classification, tech stack, contact information, and business summary.

Lead explorer

Endpoint

GET /v1/enrichment/domain

Request

Headers

HeaderValue
AuthorizationBearer cdb_your_api_key

Query Parameters

ParameterTypeRequiredDescription
domainstringYesDomain to enrich (e.g., stripe.com)
Domain Format

Pass the bare domain without protocol or path: stripe.com, not https://stripe.com or www.stripe.com.

Example Request

curl -H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/enrichment/domain?domain=stripe.com"

Python

import requests

response = requests.get(
"https://api.crondb.com/v1/enrichment/domain",
params={"domain": "stripe.com"},
headers={"Authorization": "Bearer cdb_your_api_key_here"},
)

data = response.json()
print(f"Industry: {data['industry']}")
print(f"Summary: {data['website_summary']}")
print(f"Tech: {data['tech_stack']}")

Node.js

const response = await fetch(
"https://api.crondb.com/v1/enrichment/domain?domain=stripe.com",
{ headers: { Authorization: "Bearer cdb_your_api_key_here" } }
);
const data = await response.json();
console.log(`Industry: ${data.industry}`);

Ruby

require 'net/http'
require 'json'

uri = URI("https://api.crondb.com/v1/enrichment/domain?domain=stripe.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 "Industry: #{data['industry']}"
puts "Summary: #{data['website_summary']}"

Response

{
"domain": "stripe.com",
"industry": "Technology",
"business_type": "B2B SaaS",
"confidence": 0.97,
"registrant_country": "US",
"created_date": "2010-09-14",
"website_summary": "Stripe is a technology company that builds economic infrastructure for the internet, offering payment processing, billing, and financial services APIs.",
"tech_stack": {
"cms": "Custom",
"analytics": ["Google Analytics", "Segment", "Amplitude"],
"chat": "Intercom",
"ecommerce": null,
"marketing": ["Google Tag Manager", "Marketo"],
"framework": ["React"],
"cdn": ["Cloudflare"],
"hosting": ["AWS"]
},
"contact": {
"emails": ["sales@stripe.com", "support@stripe.com"],
"phone": "+1-888-926-2289",
"social": {
"linkedin": "https://linkedin.com/company/stripe",
"twitter": "https://twitter.com/stripe"
}
},
"dns": {
"nameservers": ["ns1.stripe.com", "ns2.stripe.com"],
"mx_records": ["aspmx.l.google.com"],
"has_ssl": true
},
"last_updated": "2026-03-17T08:00:00Z"
}

Response Fields

FieldTypeDescription
domainstringThe queried domain
industrystringAI-classified industry
business_typestringB2B, B2C, Marketplace, SaaS, etc.
confidencenumberAI confidence score (0-1)
registrant_countrystringISO 2-letter country code
created_datestringDomain registration date
website_summarystringAI-generated business description
tech_stackobjectDetected technologies by category
contactobjectFound emails, phones, social links
dnsobjectDNS and SSL information
last_updatedstringWhen the data was last refreshed

Tech Stack Categories

CategoryDescriptionExample Values
cmsContent management systemWordPress, Shopify, Wix
analyticsAnalytics and tracking toolsGoogle Analytics, Mixpanel
chatLive chat and supportIntercom, Drift, Zendesk
ecommerceE-commerce platformsShopify, WooCommerce, Stripe
marketingMarketing toolsHubSpot, Mailchimp, GTM
frameworkFrontend frameworksReact, Vue, Angular
cdnContent delivery networksCloudflare, Fastly
hostingHosting providersAWS, Vercel, Netlify

Errors

StatusDetailCause
400Invalid domain formatDomain parameter is malformed
401Invalid API keyAuthentication failed
404Domain not found in databaseDomain has not been crawled
429Rate limit exceededToo many requests

Notes

  • Each enrichment call counts as 1 API query
  • Data freshness depends on when CronDB last crawled the domain
  • Use last_updated to determine data recency
  • For enriching multiple domains at once, use the Bulk endpoint

Next Steps