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

Endpoint
GET /v1/enrichment/domain
Request
Headers
| Header | Value |
|---|---|
| Authorization | Bearer cdb_your_api_key |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain 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
| Field | Type | Description |
|---|---|---|
domain | string | The queried domain |
industry | string | AI-classified industry |
business_type | string | B2B, B2C, Marketplace, SaaS, etc. |
confidence | number | AI confidence score (0-1) |
registrant_country | string | ISO 2-letter country code |
created_date | string | Domain registration date |
website_summary | string | AI-generated business description |
tech_stack | object | Detected technologies by category |
contact | object | Found emails, phones, social links |
dns | object | DNS and SSL information |
last_updated | string | When the data was last refreshed |
Tech Stack Categories
| Category | Description | Example Values |
|---|---|---|
cms | Content management system | WordPress, Shopify, Wix |
analytics | Analytics and tracking tools | Google Analytics, Mixpanel |
chat | Live chat and support | Intercom, Drift, Zendesk |
ecommerce | E-commerce platforms | Shopify, WooCommerce, Stripe |
marketing | Marketing tools | HubSpot, Mailchimp, GTM |
framework | Frontend frameworks | React, Vue, Angular |
cdn | Content delivery networks | Cloudflare, Fastly |
hosting | Hosting providers | AWS, Vercel, Netlify |
Errors
| Status | Detail | Cause |
|---|---|---|
| 400 | Invalid domain format | Domain parameter is malformed |
| 401 | Invalid API key | Authentication failed |
| 404 | Domain not found in database | Domain has not been crawled |
| 429 | Rate limit exceeded | Too many requests |
Notes
- Each enrichment call counts as 1 API query
- Data freshness depends on when CronDB last crawled the domain
- Use
last_updatedto determine data recency - For enriching multiple domains at once, use the Bulk endpoint
Next Steps
- Bulk Enrichment — Enrich up to 100 domains at once
- Tech Stack — Get only tech stack data
- Email Finder — Find additional contacts