Developer Guide
Company Enrichment API: Enrich Any Domain in One Call
Turn a bare domain into 700+ real-time signals. Firmographics, funding, hiring velocity, leadership changes, tech stack, competitive intel. One request. ~200ms response.
What a Company Enrichment API Actually Does (and Why Most Fall Short)
A company enrichment API takes a domain and returns everything you need to know about that company. The problem: most enrichment providers return static firmographic data. Employee count from 6 months ago. Industry classification from a decade-old SIC code. Revenue range that hasn't been updated since the last funding round.
Static data tells you what a company is. It doesn't tell you what's happening right now, or why you should care today versus next quarter.
Autobound's Signal API enrichment endpoint returns real-time signals alongside profile data: hiring surges, funding events, CRM migrations, VP-level hires, competitive displacements, M&A activity, pricing page visit clusters. 60 signal types across 6 categories, sourced from 35+ data providers, scored by impact, and timestamped to the day.
One call. One domain. A full intelligence brief. Here's how to make your first request. For a broader comparison of enrichment APIs and how Autobound compares to alternatives, see our data enrichment API guide.
Quickstart: Your First Enrichment Call
Grab your API key from the developer docs. If you haven't signed up yet, create a free account → 1,000 credits, no credit card. You'll have a key in under 30 seconds.
Here's the full curl command to enrich a single domain:
curl -X GET "https://api.autobound.ai/v1/enrich/company?domain=ramp.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"Response (trimmed for readability, full response includes all active signals):
{
"company": {
"name": "Ramp",
"domain": "ramp.com",
"industry": "Financial Technology",
"sub_industry": "Corporate Spend Management",
"headcount": 1150,
"headcount_range": "1001-5000",
"revenue_range": "$100M-$500M",
"founded_year": 2019,
"hq_city": "New York",
"hq_state": "NY",
"hq_country": "US",
"description": "Corporate card and spend management platform for businesses.",
"linkedin_url": "https://linkedin.com/company/ramp-financial",
"last_updated": "2026-06-18T14:32:00Z"
},
"signals": [
{
"type": "Series D Funding",
"category": "FINANCIAL_FUNDING",
"description": "Ramp closed a $300M Series D at $7.65B valuation, led by Thrive Capital.",
"timestamp": "2026-05-22T00:00:00Z",
"impact_score": 5,
"source": "Crunchbase",
"source_url": "https://crunchbase.com/funding_round/ramp-series-d"
},
{
"type": "Engineering Hiring Surge",
"category": "HIRING_GROWTH",
"description": "Ramp posted 47 engineering roles in the last 30 days, a 3.2x increase over the prior period.",
"timestamp": "2026-06-15T00:00:00Z",
"impact_score": 4,
"source": "LinkedIn Jobs",
"source_url": null
},
{
"type": "New CRO Appointment",
"category": "LEADERSHIP_PEOPLE",
"description": "Ramp appointed Sarah Chen as Chief Revenue Officer, previously VP Sales at Datadog.",
"timestamp": "2026-06-02T00:00:00Z",
"impact_score": 4,
"source": "LinkedIn",
"source_url": null
},
{
"type": "New Market Expansion",
"category": "COMPANY_MARKET",
"description": "Ramp announced UK and EU expansion with local acquiring partnerships.",
"timestamp": "2026-05-30T00:00:00Z",
"impact_score": 4,
"source": "Press Release",
"source_url": "https://ramp.com/blog/europe-launch"
},
{
"type": "Data Warehouse Adoption",
"category": "TECHNOLOGY_PRODUCT",
"description": "Ramp migrated analytics infrastructure to Snowflake, per job postings requiring Snowflake expertise.",
"timestamp": "2026-06-10T00:00:00Z",
"impact_score": 3,
"source": "Job Postings",
"source_url": null
},
{
"type": "SDR/BDR Team Expansion",
"category": "HIRING_GROWTH",
"description": "12 new SDR/BDR openings posted, indicating outbound motion scaling.",
"timestamp": "2026-06-12T00:00:00Z",
"impact_score": 3,
"source": "LinkedIn Jobs",
"source_url": null
},
{
"type": "VP Marketing Hire",
"category": "LEADERSHIP_PEOPLE",
"description": "Ramp hired Marcus Webb as VP Marketing from HubSpot.",
"timestamp": "2026-06-08T00:00:00Z",
"impact_score": 3,
"source": "LinkedIn",
"source_url": null
},
{
"type": "Product Launch",
"category": "TECHNOLOGY_PRODUCT",
"description": "Ramp launched 'Ramp Intelligence', an AI-powered spend categorization engine.",
"timestamp": "2026-06-01T00:00:00Z",
"impact_score": 4,
"source": "Product Hunt",
"source_url": "https://producthunt.com/posts/ramp-intelligence"
}
],
"funding_history": [
{ "round": "Series D", "amount": "$300M", "date": "2026-05-22", "valuation": "$7.65B" },
{ "round": "Series C", "amount": "$150M", "date": "2023-03-15", "valuation": "$4.1B" },
{ "round": "Series B", "amount": "$115M", "date": "2021-08-20", "valuation": "$1.6B" }
],
"tech_stack": ["Snowflake", "AWS", "React", "Python", "Kafka", "dbt", "Salesforce"],
"hiring_summary": {
"open_roles": 134,
"engineering_roles": 47,
"sales_roles": 28,
"30d_change_pct": 42
},
"meta": {
"request_id": "req_8f2a3b1c9d4e",
"credits_used": 16,
"signals_returned": 8,
"latency_ms": 187
}
}That's 8 signals returned in 187ms. At the Growth plan rate ($0.009/credit), this call cost 16 credits → $0.144. At Enterprise rate, $0.064. You now know Ramp just raised $300M, hired a new CRO, is expanding to Europe, scaling their SDR team, and adopted Snowflake. That's not enrichment. That's a full account brief.
Response Schema Walkthrough
The enrichment response has six top-level objects. Here's what each contains and how to use it.
company (object)
Core firmographic profile. Fields: name (string), domain (string), industry and sub_industry (strings), headcount (integer), headcount_range (string bucket), revenue_range (string bucket), founded_year (integer), HQ location fields, linkedin_url, and last_updated (ISO 8601 timestamp). This is the "static" layer. Updated daily.
signals (array)
The core differentiator. Each signal object contains: type (one of 60 signal types), category (HIRING_GROWTH, FINANCIAL_FUNDING, TECHNOLOGY_PRODUCT, LEADERSHIP_PEOPLE, INTENT_ENGAGEMENT, or COMPANY_MARKET), description (natural language summary of the event), timestamp (when the signal was detected), impact_score (1-5, where 5 = highest urgency), source (data provider), and source_url (nullable, direct link when available).
Impact scores map directly to urgency. A score of 5 (like a Series D close or CEO transition) means "reach out this week." A score of 3 (like a tech stack adoption signal) means "add context to your next touch." Use these scores to prioritize accounts and personalize messaging depth. More on this in our signal-based selling guide.
funding_history (array)
Chronological array of funding rounds. Each object: round, amount, date, valuation (nullable). Sourced from Crunchbase, PitchBook, SEC filings.
tech_stack (array of strings)
Detected technologies, parsed from job postings, DNS records, page source, and integration marketplaces. Useful for competitive displacement targeting or integration-based outreach.
hiring_summary (object)
Aggregate hiring metrics: open_roles (total), engineering_roles, sales_roles, and 30d_change_pct (percentage change in open roles over the prior 30-day window). A company with 30d_change_pct above 30% is almost always in a buying cycle.
meta (object)
Request metadata: unique request ID for debugging, credits consumed, signals returned count, and latency in milliseconds. Use credits_used to track spend programmatically.
Filtering Signals by Category, Score, and Recency
You rarely need every signal for every workflow. The enrichment endpoint accepts query parameters to narrow results. This reduces response size, speeds up parsing, and lowers credit consumption (you only pay for signals returned).
Filter by category → only return hiring and growth signals:
curl -X GET "https://api.autobound.ai/v1/enrich/company?domain=ramp.com&category=HIRING_GROWTH" \
-H "Authorization: Bearer YOUR_API_KEY"Filter by impact score → only high-urgency signals (score 4 or 5):
curl -X GET "https://api.autobound.ai/v1/enrich/company?domain=ramp.com&min_impact_score=4" \
-H "Authorization: Bearer YOUR_API_KEY"Filter by recency → only signals from the last 30 days:
curl -X GET "https://api.autobound.ai/v1/enrich/company?domain=ramp.com&since=2026-05-18" \
-H "Authorization: Bearer YOUR_API_KEY"Combine all three:
curl -X GET "https://api.autobound.ai/v1/enrich/company?domain=ramp.com&category=FINANCIAL_FUNDING&min_impact_score=4&since=2026-05-01" \
-H "Authorization: Bearer YOUR_API_KEY"That call would return only the Series D signal (impact 5, financial category, detected May 22). One signal → 2 credits → $0.018 at Growth tier. Filtering turns the enrichment endpoint into a precise trigger detection system. For more on building workflows around specific triggers, see our trigger events guide.
Bulk Enrichment: 1,000 Domains in Under 60 Seconds
The API supports 100 requests per second per key. No dedicated batch endpoint needed. Parallelize single-domain calls and you'll enrich 1,000 accounts in 10 seconds. Zero-result requests (domain not found, no signals detected) are free, so failed lookups don't burn credits.
Here's a Python pattern using asyncio and aiohttp to enrich a CSV of domains:
import asyncio
import aiohttp
import csv
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.autobound.ai/v1/enrich/company"
CONCURRENCY = 80 # stay under 100 req/sec limit
async def enrich_domain(session, semaphore, domain):
async with semaphore:
params = {"domain": domain, "min_impact_score": 3}
headers = {"Authorization": f"Bearer {API_KEY}"}
async with session.get(BASE_URL, params=params, headers=headers) as resp:
if resp.status == 200:
return await resp.json()
return None
async def main():
# Load domains from CSV (column header: "domain")
with open("accounts.csv") as f:
domains = [row["domain"] for row in csv.DictReader(f)]
semaphore = asyncio.Semaphore(CONCURRENCY)
async with aiohttp.ClientSession() as session:
tasks = [enrich_domain(session, semaphore, d) for d in domains]
results = await asyncio.gather(*tasks)
enriched = [r for r in results if r is not None]
print(f"Enriched {len(enriched)}/{len(domains)} domains")
# Write results, push to CRM, score accounts, etc.
asyncio.run(main())For Node.js, the same pattern works with p-limit or a simple semaphore. The key point: treat the API as a high-throughput stream, not a batch job. Each request is independent, stateless, and averages 150-250ms.
At 1,000 domains with an average of 7 signals each → 14,000 credits consumed. On the Scale plan ($149/mo, 19,867 credits), that's a single enrichment run with credits left over. Details on all plans at autobound.ai/pricing.
Three Integration Patterns Teams Ship in a Day
Pattern 1: CRM Auto-Enrichment on Lead Creation
When a new lead enters Salesforce or HubSpot, a webhook fires, calls the enrichment endpoint, and writes signal tags back to the account record. Reps open the account and immediately see: "Series B closed 2 weeks ago, hiring 12 SDRs, new VP Sales started Monday."
// Salesforce webhook handler (simplified)
async function onLeadCreated(lead) {
const enrichment = await fetch(
`https://api.autobound.ai/v1/enrich/company?domain=${lead.company_domain}&min_impact_score=3`,
{ headers: { Authorization: `Bearer ${process.env.AUTOBOUND_KEY}` } }
).then(r => r.json());
// Tag the account with active signal types
const signalTags = enrichment.signals.map(s => s.type);
await salesforce.updateAccount(lead.account_id, {
active_signals: signalTags.join("; "),
signal_count: enrichment.signals.length,
top_signal: enrichment.signals[0]?.description || "None"
});
}Pattern 2: AI SDR Data Layer
Before any automated email sends, the AI SDR calls the enrichment endpoint to fetch recent signals. The signal description becomes the personalization hook. "Saw you just brought on a new CRO from Datadog. When new revenue leaders come in, the first 90 days usually involve retooling the outbound stack..." This isn't generic personalization. It's specific, timely, and sourced. Read more about why AI SDR platforms need a signal data layer.
Pattern 3: ICP Scoring by Signal Density
Enrich your entire target account list weekly. Score each account by: number of active signals, average impact score, and recency of the freshest signal. An account with 12 signals (average impact 4.1, newest signal 3 days old) ranks higher than an account with 2 signals from last quarter. This gives your team a dynamic priority queue that reorders itself as signals emerge.
These patterns compose well. Teams running all three report 3-4x higher reply rates on outbound because every touch is grounded in something real. For the full breakdown on signal-driven outreach, check the B2B data enrichment guide.
Pricing: What Enrichment Actually Costs Per Company
Enrichment costs 2 credits per signal returned. A typical response with 5-10 signals uses 10-20 credits. Here's what that looks like across plan tiers:
| Plan | Cost/Credit | Cost per 8-Signal Enrichment | Cost per 1,000 Companies |
|---|---|---|---|
| Growth ($49/mo) | $0.009 | $0.144 | $144 |
| Scale ($149/mo) | $0.0075 | $0.12 | $120 |
| Pro ($499/mo) | $0.006 | $0.096 | $96 |
| Enterprise ($4,999/mo) | $0.004 | $0.064 | $64 |
Compare that to alternatives:
- Clearbit (now Breeze by HubSpot) → $99-$999/mo flat fee, limited monthly API calls, returns static firmographics only. No signals.
- People Data Labs → $0.03-$0.10 per match for static company profiles. No real-time signals, no hiring data, no event detection.
- ZoomInfo → $15K+/yr minimum contract. Rich data, but locked behind annual commitments and seat-based pricing.
Autobound's model: pure pay-per-use, no minimum commitment, credits never expire, and every response includes real-time signals alongside firmographics. For platform teams looking to embed enrichment into their own product, see OEM licensing options.
Beyond REST: MCP Server, Native Integrations, and the Signal Catalog
The REST API is the fastest path. But Autobound also ships an MCP server for AI agent frameworks, plus native integrations with Salesforce, HubSpot, Outreach, Salesloft, Instantly, and Clay. If you're building AI workflows that need company context on demand, the enrichment endpoint slots in as a tool call with zero orchestration overhead.
The full catalog of signal types, categories, and source coverage is browsable at autobound.ai/signal-data. Browsing is free. No credits consumed until you make an enrichment or search call.
For a deeper look at how enrichment data compares across vendors, we break down 12 providers in our B2B data providers comparison. To understand how signal data differs from intent and firmographic data, read our explainer. And for teams using enrichment to power outbound, our B2B prospecting signals guide covers the full workflow from signal detection to sent email.
Get Your First Enrichment in 30 Seconds
1,000 free credits on signup. No credit card. Paste the curl command above, swap in your key, and you'll have real-time signals for any domain before you finish reading this sentence.
Frequently Asked Questions
A typical enrichment call returns 5 to 15 active signals per domain, depending on company size and recent activity. Large public companies often return 20+ signals spanning hiring, funding, leadership, and technology changes.
Enrichment costs 2 credits per signal returned. At the Growth tier ($0.009/credit), a typical 8-signal response costs $0.144. At Enterprise tier ($0.004/credit), that same call costs $0.064. Zero-result requests are free.
Traditional enrichment APIs return static firmographic fields (employee count, industry, revenue). Autobound's company enrichment API returns real-time signals: what's happening at the company right now. Hiring surges, funding rounds, leadership changes, tech stack shifts, competitive displacements. Static data tells you what a company is. Signals tell you why they matter today.
Yes. The API supports 100 requests per second with no batch endpoint needed. Most customers enrich thousands of domains by parallelizing single-domain requests. Zero-result lookups are free, so failed matches don't consume credits.
A single domain string. No company name disambiguation, no LinkedIn URL required. Pass 'stripe.com' and get back everything: profile, signals, funding history, hiring activity, tech stack. The domain is the universal key.
No. Credits never expire on any plan. You can sign up for 1,000 free credits with no credit card, test the enrichment endpoint, and upgrade only when you need more volume.