Skip to main content

API - Getting the Best Enrichment Results

How to ensure you get the best enrichment results when using the Surfe API.

Surfe searches multiple verified data sources to find the most accurate information available. But the quality of what you get back depends heavily on the quality of what you send in. Here's how to get the best possible results from every enrichment request.

Provide as Much Information as Possible

The more data you give Surfe to work with, the higher your find rate will be. At minimum you need a first name, last name and one of the following:

  • LinkedIn URL

  • Company domain

  • Company name

The best combination is:

{
"firstName": "David",
"lastName": "Chevalier",
"companyDomain": "surfe.com",
"companyName": "Surfe",
"linkedinUrl": "https://www.linkedin.com/in/david-maurice-chevalier"
}

Providing all five fields gives Surfe the best chance of finding the right person with verified data.


πŸ’‘ Tip: LinkedIn URL is a Strong Identifier

If you have a person's LinkedIn URL, always include it. In our experience it's one of the most reliable ways to uniquely identify a person and can significantly improve your find rate compared to name and company alone.


Use Accurate Company Domains

When enriching people, use the company's root domain rather than a subdomain or full URL:

βœ… surfe.com
❌ www.surfe.com
❌ https://surfe.com
❌ app.surfe.com

For company enrichment, each domain must be a valid Fully Qualified Domain Name or Hostname.


Use externalID to Match Results to Your Records

Always include an externalID β€” your own internal identifier for each person or company. Surfe returns this alongside the enrichment results, making it easy to match data back to your CRM or database without any complex lookup logic.

{
"firstName": "David",
"lastName": "Chevalier",
"companyDomain": "surfe.com",
"externalID": "your-crm-id-123"
}

πŸ’‘ Tip: Only Request the Data You Need

When starting an enrichment, use the include object to specify exactly what data you want. Being selective helps keep your credit usage efficient.

"include": {
"email": true,
"mobile": false,
"linkedInUrl": false
}
  • Set email: true to request email addresses β€” uses email credits

  • Set mobile: true to request mobile numbers β€” uses mobile credits

  • You must include at least one field set to true


Understand What "Not Found" Means

If an enrichment completes with a NOT_FOUND status, it means Surfe searched its verified sources and couldn't find data for that person. This is not an error β€” it's expected behaviour for some records.

Importantly β€” you are not charged credits for NOT_FOUND results. Credits are only consumed when data is successfully found.


Use Webhooks to Get Results Instantly

Rather than polling for results, set up webhooks to be notified the moment each enrichment completes. This is especially important for large batches where polling would be impractical.

β†’ See: API - Webhooks


Check Your Credit Balance Before Large Jobs

Before running a large enrichment batch, check your credit balance using the Get Credits endpoint to make sure you have enough email and mobile credits available.

β†’ See: API - Get Credits


Need Help?

If you're getting lower find rates than expected or have questions about improving your results, reach out to our support team via Intercom.


Additional Resources

Did this answer your question?