Explainer

What Is Data Enrichment?

Data enrichment fills the gaps in a record you already have. Here is how it works, what it is not, and where to start.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

Data enrichment is the process of adding missing fields to a record you already hold, using an outside data source. A lead with only an email gains a job title, a company, a seniority level and a phone number.

This page defines the term, walks through one lookup, and shows which LeadOcean call does the work.

Key takeaways

  • Enrichment starts from a record you have, such as an email or a LinkedIn URL, and adds fields you lack.
  • It is not the same as search, which finds new records, or cleaning, which fixes records you already hold.
  • The input is the key. A strong identifier returns a precise match, and a weak one returns a guess or nothing.
  • LeadOcean enriches through POST /v1/people/enrich. A person we hold nothing for is a 404 and costs 0 records.

What it is

Data enrichment is the act of matching a partial record to a larger data source and copying back the fields the record was missing.

The partial record is what you start with. It might be a form fill, a CRM contact, a CSV export or a single email address. The data source is a database of people or companies kept current by a provider.

You send one identifier. The provider finds the matching record and returns the extra fields. You store them next to the original.

Typical fields added to a person are job title, job level, department, company, location, work email and phone. Typical fields added to a company are headcount, industry, country and the technology it runs.

Enrichment can be one-off or continuous. A one-off pass enriches a list once before a campaign. A continuous setup enriches each new record as it arrives, so nothing enters your system half empty.

Enrichment covers two jobs that people often split apart. The first is filling blanks, such as a missing title. The second is refreshing fields that have gone stale, such as a job a person left last year.

How it works

Every enrichment follows the same five steps, whether you click a button in a CRM or call an API.

  1. Pick the identifier. Choose the field that points to one person or company. An email, a LinkedIn URL, a phone number or a company domain all work.
  2. Send it to the data source. The provider receives the identifier and looks for a match in its database.
  3. Match. If one record fits, the provider returns it. If none fits, you get an empty result or an error.
  4. Merge. Your system writes the returned fields onto your record. Decide up front whether new values overwrite old ones.
  5. Check the result. Read the status fields before you act, especially the email status.

A worked example

Say you have one lead from a form: jane.doe@acme.com. You know nothing else about her. One request adds the rest.

bash
curl -X POST "https://api.leadocean.io/v1/people/enrich" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "jane.doe@acme.com", "reveal_email": true}'

The response carries a profile block and a contact block. Here is the shape, with placeholder values.

json
{
  "success": true,
  "data": {
    "profile_data": { "...": "name, title, company" },
    "contact_data": {
      "has_email": true,
      "has_phone": true,
      "email_status": "verified",
      "contact_phones": [{ "phone": "+14155550133", "type": "mobile" }]
    }
  }
}

Your lead now has a title, an employer and a phone number. It also has an email status you can test before you send anything.

Data enrichment vs data cleaning

Enrichment adds fields to a record. Cleaning corrects or removes fields already in it. The two overlap in practice, but they solve different problems.

Data enrichmentData cleaningSearch
Starts fromA record you holdA record you holdA set of filters
What it doesAdds missing fieldsFixes or removes bad fieldsFinds records you do not hold
Typical inputEmail, LinkedIn URL, domainYour whole tableTitle, country, industry
Needs an outside sourceYesNoYes
OutputYour record, with more fieldsYour record, with fewer errorsA new list of records
LeadOcean callPOST /v1/people/enrichNone, done in your own toolsPOST /v1/people/search

The confusion is natural, because enrichment often exposes dirty data. A returned job title may disagree with the one in your CRM. You then clean the CRM by choosing which value wins.

Search is the other near neighbor. Search answers "who matches these filters?", while enrichment answers "what else do we know about this one?". Most teams use search to build a list and enrichment to fill in the rows. A common mistake is to buy a large list when you only needed three fields on the contacts you already have.

When it matters

Enrichment pays off wherever a decision depends on a field you do not have yet.

Routing and scoring inbound leads

A form that asks for only an email converts better than a long one. Enrichment adds the title, seniority and company size afterward, so you can score the lead and route it to the right rep without asking the visitor for more.

Preparing a list before outreach

A list of names and companies is not ready to send. Enrichment adds the work email and its status. Read email_status and drop anything that is not verified or catch-all. LeadOcean does not refund or credit back bounced emails, so this check is yours to run.

Keeping a CRM current

People change jobs. A contact record that was right last year can point to someone who has since left. LeadOcean refreshes the dataset monthly, and each record carries its own fetched_at date, so you can see how old a value is.

Feeding an agent or a script

An AI agent that drafts outreach needs facts to write from. Enrichment gives it the title, the company and the contact fields in structured JSON. The same call works from a cron job, a notebook or an MCP client.

How LeadOcean handles it

LeadOcean enriches with POST /v1/people/enrich. You pass exactly one of linkedin_url, email, phone or person_id. Set reveal_email to true to get the address back, because it defaults to false.

There is no lookup by name plus company domain. If you hold only those two, search by domain first, then enrich by person_id.

The first call lists people at a placeholder account. The second enriches one of them by person_id.

bash
curl "https://api.leadocean.io/v1/companies/acme.com/people" \
  -H "x-api-key: $LEADOCEAN_API_KEY"

curl -X POST "https://api.leadocean.io/v1/people/enrich" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"person_id": "PERSON_ID_FROM_STEP_1", "reveal_email": true}'

Company records use POST /v1/companies/enrich. Phone and email lookups have their own endpoints: GET /v2/people/phone, GET /v2/people/email/work and GET /v2/people/email/personal.

Cost is simple. Every person or company returned counts as one record. A person we hold nothing for is a 404 and costs nothing. The v2 contact endpoints cost one record per call, including a call that finds nothing.

The Free plan gives you 1,000 records, one-off, with no card. Pro is $499 a month with unlimited searches, enrichments and lookups. See pricing for the fair-use line, and what enrichment actually costs for the arithmetic at volume.

For a file of many rows, the app also has an Exports page. You build a filter, pick columns, see the record price, and download a CSV. For a command-line route, read the guide to enrichment from a terminal. The short definition lives in the enrichment glossary entry.

FAQ

Is data enrichment the same as data append?

Mostly, yes. "Append" is the older term from direct marketing, where a vendor added fields to a mailing list. Enrichment is the current word, and it usually implies a live lookup by API rather than a batch file.

What input gives the best match?

A unique identifier. A LinkedIn URL or an email points to one person. A name alone is ambiguous, and LeadOcean does not accept a name plus domain as an enrich input.

How accurate is enriched data?

It depends on the source and on the age of the record. Check email_status before sending, and use the fetched_at date on each record to judge freshness. The dataset is refreshed monthly.

Does enrichment replace my CRM?

No. Your CRM stores the records and runs the workflow. Enrichment is a data source that feeds it. LeadOcean has no CRM, sequencer or dialer.

Enrich your first record free

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →