Quickstart: B2B Company Enrichment API
Get structured company data from any domain in under 5 minutes. Send a company URL, domain, or name — get back a clean JSON profile with industry, size, tech stack, social links, and more.
Prerequisites
- A RapidAPI account (sign up free)
- Your RapidAPI key (found in any API's "Code Snippets" panel)
curl, Node.js 18+, or Python 3.8+
Step 1: Get Your API Key
Subscribe to the B2B Company Enrichment API on RapidAPI. The free tier gives you 25 requests per day — enough to test your integration end to end.
Your API key is passed via the X-API-Key header on every request.
Base URL:
https://b2b-enrichment.p.rapidapi.com
Step 2: Make Your First Request
The single endpoint you need is POST /api/enrich. Send a company field and (optionally) a fields array to control which data comes back.
cURL
curl -X POST "https://b2b-enrichment.p.rapidapi.com/api/enrich" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"company": "stripe.com",
"fields": ["name", "industry", "size", "techStack"]
}'
JavaScript (Node.js / fetch)
const response = await fetch(
"https://b2b-enrichment.p.rapidapi.com/api/enrich",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.RAPIDAPI_KEY,
},
body: JSON.stringify({
company: "stripe.com",
fields: ["name", "industry", "size", "techStack"],
}),
}
);
const result = await response.json();
if (!response.ok) {
console.error(result.error);
process.exit(1);
}
console.log(result.data);
Python
import os
import requests
response = requests.post(
"https://b2b-enrichment.p.rapidapi.com/api/enrich",
headers={
"Content-Type": "application/json",
"X-API-Key": os.environ["RAPIDAPI_KEY"],
},
json={
"company": "stripe.com",
"fields": ["name", "industry", "size", "techStack"],
},
timeout=30,
)
result = response.json()
if not response.ok:
raise RuntimeError(result["error"]["message"])
print(result["data"])
Step 3: Parse the Response
A successful response looks like this:
{
"success": true,
"data": {
"name": "Stripe",
"industry": "Fintech / Payments",
"size": "5001-10000",
"techStack": ["React", "Ruby", "Go", "AWS"]
},
"metadata": {
"source": "https://stripe.com",
"enrichedAt": "2026-03-22T10:00:00.000Z",
"responseTimeMs": 3200,
"tokensUsed": 1250,
"fieldsRequested": ["name", "industry", "size", "techStack"]
}
}
Every response includes:
success—trueif enrichment worked,falseon error.data— The enriched fields. Any field the API can't determine returnsnull.metadata— The resolved URL, timestamp, processing time, and token usage.
If something goes wrong, you get an error object instead:
{
"success": false,
"error": {
"code": "INVALID_REQUEST",
"message": "company is required"
}
}
Check response.ok (or response.status_code in Python) before accessing data.
Step 4: Choose Your Fields
You don't have to request every field. Pass only what you need to reduce response time and token usage.
| Field | Type | What You Get |
|---|---|---|
name | string | Official company name |
domain | string | Primary domain |
industry | string | Industry or vertical |
size | string | Employee-count band (e.g., 51-200) |
description | string | 1-2 sentence summary |
techStack | string[] | Detected technologies |
socialLinks | object | Social profile URLs by platform |
founded | string | Year founded |
Omit the fields parameter entirely to get all eight fields.
Step 5: Handle Rate Limits
The API enforces 10 requests per minute per key. Every response includes rate-limit headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 7
X-RateLimit-Reset: 1710950460
If you hit the limit, you'll get HTTP 429. Wait until X-RateLimit-Reset (Unix timestamp) before retrying.
For batch workflows, add a 6-second delay between calls to stay within the limit.
What's Next?
- API Reference — Full endpoint documentation, error codes, and response schemas.
- Tutorial: CRM Enrichment — Auto-enrich signups and sync to your CRM.
- Tutorial: Lead Scoring — Build an ICP scoring engine with enrichment data.
- Tutorial: Sales Outreach — Generate personalized outreach with company context.