Skip to content
linkedindataapi.com
CRM & Data Engineering · 20268 min read·Updated 2026-11-04

B2B Company & Domain Enrichment API in Python & TypeScript (2026 Guide)

How to build a sub-second signup domain enrichment pipeline (`[email protected]` -> `stripe.com` -> verified headcount, industry, HQ, and decision-makers) at $0.40–$1.00 per 1,000 companies without Clearbit or HubSpot Breeze lock-in.

$0.40–$1.00 / 1K Profiles & Companies · $0.08–$0.20 / 1K Search Leads · 100% No-Cookie

Instant Quickstart · Copy & Run in 30 Seconds

Enrich Company Firmographics by Corporate Domain

Execute in Live Playground →
import requests

FREE_DOMAINS = {"gmail.com", "yahoo.com", "outlook.com", "hotmail.com", "icloud.com"}

def enrich_work_email(email: str, api_key: str) -> dict | None:
    domain = email.split("@")[-1].strip().lower()
    if not domain or domain in FREE_DOMAINS:
        return None
    res = requests.get(
        "https://api.linkedindataapi.com/v1/company",
        params={"domain": domain},
        headers={"x-api-key": api_key},
        timeout=15,
    )
    res.raise_for_status()
    payload = res.json()
    return payload.get("data") if payload.get("code") == 0 else None

company = enrich_work_email("[email protected]", "b2b_live_your_api_key")
print(company["name"], company["staff_count"], company["industry"])

Key Engineering Takeaways (TL;DR)

  • ✓Pass either `company=stripe` or `domain=stripe.com` to `GET /v1/company` to retrieve normalized firmographics in a single synchronous HTTPS request.
  • ✓Every company enrichment call costs 10 Credits ($0.001 base, or $0.0004 on the Business plan) — up to 96% cheaper than Clearbit, ZoomInfo, or People Data Labs.
  • ✓404 Not Found responses and free-email domains (`gmail.com`, `outlook.com`) are automatically filtered or cached with 0 Credits deducted.
  • ✓Combine `/v1/company` with `/v1/people/search` and `/v1/jobs/search` to score inbound leads by both headcount and live departmental hiring velocity.

1. Why Domain-to-Company Enrichment Matters for B2B SaaS

Asking users to fill out 8-field signup forms kills conversion. By extracting the root domain from a work email address and calling GET /v1/company, your backend can auto-populate firmographics in under 15ms on cached domains.

Comparison of Company Enrichment API Approaches in 2026
DimensionLinkedInDataAPI (/v1/company)Clearbit (HubSpot Breeze)People Data LabsDIY Scraper + Proxies
Cost per 1,000 companies$0.40–$1.00$50.00–$120.00+$20.00–$80.00$15.00+ in proxy & CAPTCHA cost
Domain lookup (`?domain=stripe.com`)Native synchronous GETRequires HubSpot bundleSupportedRequires custom DNS/search resolution
Hot cache latency (p50)14 ms (PostgreSQL 16 + Redis)120 ms180 ms4,500+ ms
Session cookies (`li_at`) requiredNever (100% no-cookie)NoNoYes (high ban risk)

2. Production Python & TypeScript Domain Enrichment Code

Below is a complete implementation that normalizes a work email domain, skips consumer email providers, and enriches the company via GET /v1/company.

Enrich Company Firmographics by Corporate Domain

Query GET /v1/company?domain=stripe.com with automatic retry and credit tracking:

curl "https://api.linkedindataapi.com/v1/company?domain=stripe.com" \
  -H "x-api-key: b2b_live_your_api_key"

Interactive Engineering Workbench · GET /v1/company

Verify real-time latency, enrichment unit math & JSON schema

2,000 profiles/day
1,000 companies/day
10,000 items/day
HTTP Calls/Day
3,400
Up to 600 RPM
Hot Cache Latency
~14 ms p50
PostgreSQL 16 + Redis
Cookie Risk
0 Cookies
No li_at required
Estimated Monthly Pipeline Cost (30 Days)
$59.70/ mo with Business bonus ($150.00 base rate)
Daily consumption: 50,000 Credits ($5.00/day)
LinkedInDataAPI (with volume bonus):$59.70 / mo
Proxycurl / Clearbit ($20+ / 1K):$6300.00 / mo
Failed / 404 request fee:$0.00 (0 Credits)

Frequently Asked Questions

What happens if a domain does not match any company?
The gateway returns HTTP 404 with code !== 0 and deducts 0 Credits. Negative lookups are cached for 6 hours so repeated hits return immediately at zero cost.
Can I also pass a company slug or full company URL?
Yes. GET /v1/company accepts company=stripe, domain=stripe.com, or company=https://www.linkedin.com/company/stripe.