Skip to main content

API - Enrich Companies

Updated yesterday

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:

  1. Start an Enrichment: You send a list of company domains.

  2. 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.


Additional Resources

Did this answer your question?