Company Enrichment – Why It's a Two-Step Process and How to Use It
In this article, we’ll walk through how asynchronous split requests work, why Surfe uses them, and how you can work with them confidently.
Company Enrichment is one of the core tools available in Surfe’s API. If you're enriching company data at scale, you might wonder:
“Why does the enrichment happen in two steps?”
Let’s break it down in simple terms, no technical background needed.
Why Two Steps?
To keep things fast and scalable, Surfe’s Company Enrichment API operates asynchronously. This means:
Start an Enrichment: You send a list of company domains.
Check for Results: You get a unique ID to check back later for results.
Why is this helpful? When the system enriches data, it gathers information from various sources. That can take a few seconds, especially when you're enriching multiple companies. Instead of making you wait, we return an enrichmentID
right away. You then check back using this ID to get your results once they’re ready.
The API Endpoints you’ll need (bulk or single, it’s the same logic):
Step-by-Step Guide
1. Start Your Company Enrichment Request
Send a POST
request to the Start Company Enrichment endpoint.
Here’s an example request (feel free to copy and use):
curl --location 'https://api.surfe.com/v2/companies/enrich' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"companies": [
{
"domain": "surfe.com",
"externalID": "external-id"
}
]
}'
Replace YOUR_API_TOKEN with your API key.
Example Response:
{
"message": "Your enrichment has started ✨, estimated time: 1s.",
"enrichmentID": "019841ef-c288-76ab-9311-41392ea079ad",
"enrichmentCallbackURL": "https://api.surfe.com/v2/companies/enrich/019841ef-c288-76ab-9311-41392ea079ad"
}
This tells you that your enrichment is in progress. The enrichmentID
is what you’ll use in the next step to check for your results.
2. Check for Results
Use the enrichmentID
from the response above to get the final enriched data. You’ll do this using the Get Enrichment Results endpoint.
Example Request:
curl --location 'https://api.surfe.com/v2/companies/enrich/019841ef-c288-76ab-9311-41392ea079ad' \
--header 'Authorization: Bearer YOUR_API_TOKEN
While Processing:
If the enrichment is still in progress, you’ll see something like:
{ "status": "IN_PROGRESS", "percentCompleted": 80 }
You can retry the same request after a few seconds.
Once Completed:
When the enrichment is ready, the status will be COMPLETED
, and you’ll receive a full breakdown of each company:
{
"status": "COMPLETED",
"percentCompleted": 100,
"companies": [
{
"externalID": "external-id",
"name": "Surfe",
"description": "Sales teams waste too much time on repetitive admin tasks...",
"linkedInURL": "https://linkedin.com/company/surfe",
"websites": ["ftapi.com"],
"founded": "2020",
"revenue": "10-50M",
"employeeCount": 65,
"industry": "IT Services",
"phones": ["+49 89 230 6954 0"],
"hqCountry": "FR",
"hqAddress": "52 Rue Chaussée D'antin Paris FR 75009",
"digitalPresence": [
{
"name": "LinkedIn",
"url": "https://www.linkedin.com/company/surfe"
},
{
"name": "Twitter",
"url": "https://twitter.com/surfehq"
}
],
"fundingRounds": [
{
"name": "Seed Round - Surfe",
"amount": 3984862,
"amountCurrency": "$",
"announcedDate": "2022-10-25",
"leadInvestors": ["360 Capital"]
}
],
"status": "SUCCESS"
}
]
}
You’ll now have enriched data like:
Company name and description
Website and LinkedIn URL
Industry and sub-industry
Revenue and headcount
HQ address
Phone numbers and digital presence
Funding history
Everything you need to supercharge your CRM or sales stack.
Summary
Initiate: Send your list of company domains.
Wait: You’ll receive an
enrichmentID
instantly.Retrieve: Use the
enrichmentID
to get your enriched data when it's ready.
If you're enriching multiple companies at once, just include more entries in the companies
array in the request body. Surfe handles the rest.
Need Help?
If you have any questions or need further assistance, feel free to reach out to our support team via Intercom.