ENRICHLOOPS/ COMPANY ENRICHMENT
A domain.
A whole
company.
The smallest detail can tell you a lot.
Turn a domain or LinkedIn company URL into industry, headcount, location, and socials. Everything you need to see the opportunity behind a signup.
100 free credits / month · No card. No sales call.
Stripe
stripe.com
Help increase the GDP of the internet.
- Industry
- Fintech
- Company size
- 10,001+ employees
- Headquarters
- South San Francisco
- Country
- United States
- Founded
- 2010
- Organization
- privately held
Under the hood Request & JSON response
curl -X POST "https://api.enrichloops.com/v1/companies/enrich" \
-H "Authorization: Bearer $ENRICHLOOPS_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"stripe.com"}'{
"name": "Stripe",
"domain": "stripe.com",
"slogan": "Help increase the GDP of the internet.",
"primary_industry": "Fintech",
"organization_type": "privately held",
"year_founded": 2010,
"employee_count": 17034,
"employee_range": "10,001+ employees",
"headquarters": {
"city": "South San Francisco",
"stateProvince": "California",
"country": "United States",
"countryCode": "US",
"postalCode": "94080"
},
"linkedin_url": "https://linkedin.com/company/stripe",
"linkedin_followers": 1605303,
"updated_at": "2026-08-11T21:57:16.559575+00:00"
}Illustrative records. Same schema, different companies.
One successful company lookup
Refresh cycle, on every plan
Repeat lookups within that cycle
Structured. Typed. Ready to use.
Know more.
Do something with it.
A company profile is the starting point. Better qualification, more relevant onboarding, and a cleaner CRM are what comes next.
A shorter form. A fuller picture.
Keep the signup form simple. Extract the work-email domain and enrich in the background to understand the company behind it.
employee_count> 200Route to sales-assistMake the first hello feel less cold.
Use industry and company size to shape onboarding, segment your audience, and make the next message relevant.
primary_industry"Fintech"Start the fintech journeyA CRM that keeps up with your customers.
Fill gaps when records arrive, then refresh them as companies change. Keep your scoring grounded in current company data.
headquarters.country"United Kingdom"Assign the UK territoryExample rules you can build with enriched data in your own workflow.
Every field.
A little clarity.
One consistent company object, wherever the business is based. Explore the fields you can use to score, route, and enrich your records.
Can’t verify it?
We return null. We don’t guess.
01IdentityWho the company is. The fields you show a rep or print on an account card.7 fields
| Field | Type | Example |
|---|---|---|
name | string | "Stripe" |
domain | string | "stripe.com" |
about | string | "Stripe builds programmable..." |
slogan | string | "Help increase the GDP..." |
primary_industry | string | "Fintech" |
organization_type | string | "privately held" |
year_founded | integer | 2010 |
02SizeThe numbers your fit score branches on.3 fields
| Field | Type | Example |
|---|---|---|
employee_count | integer | 17034 |
employee_range | string | "10,001+ employees" |
linkedin_followers | integer | 1605303 |
03LocationHeadquarters, split into parts so you can route by territory without parsing an address string.6 fields
| Field | Type | Example |
|---|---|---|
headquarters.city | string | "South San Francisco" |
headquarters.stateProvince | string | "California" |
headquarters.country | string | "United States" |
headquarters.countryCode | string | "US" |
headquarters.postalCode | string | "94080" |
headquarters.raw_address | string | "354 Oyster Point Blvd..." |
04PresenceStable handles you can dedupe and join on later.2 fields
| Field | Type | Example |
|---|---|---|
linkedin_url | string | "https://linkedin.com/company/stripe" |
linkedin_id | string | "2135371" |
05FreshnessRecords refresh every 14 days on every plan. These two fields tell you where a record is in that cycle.2 fields
| Field | Type | Example |
|---|---|---|
updated_at | timestamp | "2026-08-11T21:57:16Z" |
last_enriched_at | timestamp | "2026-08-03T00:06:17Z" |
Your signup form
never waits on us.
Send the domain and let your app carry on. We enrich in the background; you decide where the result goes.
- 01
Send a domain or LinkedIn URL
POST the identifier. Get a task ID back.
- 02
Receive the company profile
Poll the task, or run the record through a Loop for signed webhook delivery.
- 03
Make your next move
Store the JSON, update a CRM record, or apply your scoring rules.
curl -X POST "https://api.enrichloops.com/v1/companies/enrich" \
-H "Authorization: Bearer $ENRICHLOOPS_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"stripe.com"}'
Explore a completed Loop webhook
{
"event": "task.succeeded",
"task": {
"id": "...",
"object_type": "company",
"status": "succeeded",
"target": "stripe.com"
},
"data": {
"name": "Stripe",
"domain": "stripe.com",
"...": "..."
},
"error": null
}Every signup
deserves
a second look.
You shouldn’t have to guess which companies are worth enriching. Work out your monthly cost, then give every record the same attention.
- One credit per successful lookup. Failed lookups are automatically refunded.
- Same company, same refresh cycle? A repeat lookup costs zero credits.
- Self-serve, all the way. No seats, platform fees, or annual minimums.
companies
- Plan
- Scale
- Per enrichment
- $0.025
Scale covers this volume. Every plan includes the same features; you’re paying for credits.
A little more context.
Right in your stack.
Explore the integration guidesMake an informed switch.
All comparisonsA FEW MORE DETAILS
Before your first domain.
What comes back, how fresh it is, and exactly what you pay for.
A domain or a LinkedIn company URL. Both resolve to the same company object, so you can enrich from a signup email domain or from a CRM record that only has a LinkedIn link. Strip freemail domains before you send, so gmail.com signups do not burn a credit.
No. POST /v1/companies/enrich returns a task, not the profile. You read the profile by polling that task or by letting a Loop deliver it to your webhook. Your signup handler returns right away and the profile follows on the webhook.
The task finishes with a failed status and an error you can branch on. You still get structured JSON, so your pipeline does not need to guess. Failed lookups are not charged. Fields we cannot verify on a successful lookup come back null rather than guessed.
Company records refresh every 14 days, on every plan, Free included. A company that was 40 people at signup and 120 today shows up as 120 the next time you score it. Every response carries updated_at and last_enriched_at so you can see where a record is in that cycle.
No. A lookup you already ran inside the 14-day refresh window costs zero credits. If three people from one company sign up in the same month, you pay one credit, not three. You pay once per company per refresh cycle.
Not from this endpoint. It returns company-level public facts: industry, headcount, location, founding year, and social profiles. For the person behind a work email, use people enrichment: send the email you already have and get name, headline, and current employer back. We enrich the contacts you have, we do not find new ones.
No. Every plan is self-serve. Sign up, generate an API key from the dashboard, and send your first domain. The free tier is 100 credits a month with no card. Paid plans start at $25 a month for 1,250 credits and you upgrade from the dashboard.
Get to know
who’s signing up.
Your first 100 credits are on us. Turn a domain into your next better decision.
Get your free API keyStart with the documentation