# Prospect data

> The specification of Reply's data services — Realtime B2B Data search, contact enrichment, AI custom field enrichment, and email validation, with the Reply credit cost of each.

**Reply Data spans Realtime B2B Data search over live LinkedIn data, contact and AI-field enrichment, and email validation with Valid, Risky, and Invalid statuses. Search and enrichment consume Reply credits — 1 per LinkedIn URL, 2 per email, 3 per phone number. Every user receives 50 basic credits; Email Volume and Multichannel plans include 50 per month.**

_Status: Reviewed — human-edited, facts not yet confirmed against the product._

## At a glance

| Aspect | Detail |
| --- | --- |
| **What it is** | Reply's data services — Realtime B2B Data (Live Data) search over live LinkedIn data, contact enrichment, AI custom field enrichment, and the email validation service |
| **Belongs to / Contains** | Produces and updates [contacts](/specifications/contacts), saved to [lists](/specifications/lists), a [sequence](/specifications/sequences), or the account directly; enrichment can create and update [companies](/specifications/companies) |
| **Surfaces** | UI (Data and People pages, CSV import) · MCP · REST API availability varies by operation — check [docs.reply.io](https://docs.reply.io/api-reference/introduction) |
| **Key limit** | Reply credits: **1** per LinkedIn URL, **2** per email, **3** per phone number; every user receives **50** basic credits |
| **Lifecycle** | A search runs through Running → Finished, No new contacts, or Paused |
| **Does not** | Duplicate contacts already saved to your account, overwrite existing emails or phones during background LinkedIn enrichment, or charge Reply credits when enrichment fails with a system error |
| **Plans** | **50** Reply credits during the trial; Email Volume and Multichannel plans include **50** Reply credits per month, whether monthly or annual |

## Definition

Reply's prospect data services answer "where do contacts come from" and "how complete
are they". **Realtime B2B Data** (also called Live Data) provides live contact
information from LinkedIn based on your chosen filters. **Contact enrichment** fills in
missing LinkedIn URLs, emails, and phone numbers on existing contacts. **AI custom
fields** generate per-contact values from a prompt. The **email validation service**
classifies each address as Valid, Risky, or Invalid before you send.

## Purpose

Prospect data is the input side of outreach: build a list without bringing your own CSV,
complete the records you already have, and keep bounce rates down by validating
addresses before they enter a sequence.

## Relationships

| Relationship | Object |
| --- | --- |
| Produces | [Contacts](/specifications/contacts), saved to a specific [list](/specifications/lists), a [sequence](/specifications/sequences), both, or directly to your Reply account |
| Updates | Contact profile fields; [company](/specifications/companies) records during LinkedIn URL enrichment |
| Consumes | Reply credits (search, enrichment, AI fields) and separate email validation credits (validation) |
| Targeted by | Account [lists](/specifications/lists) — upload company domains and the search finds contacts at those companies |

## Creation

A search starts on the Data page: apply filters, check the preview of 5-7 matching
contacts, then click **Launch Live Search** and choose where to save the results — a
specific list, a sequence, both, or neither (saved directly to your account). Available
filters include a Sales Navigator search URL (unsupported filters such as Changed Jobs,
Posted on LinkedIn, or Shared Experiences are skipped with a note), an accounts list of
company domains, keywords, job title, department, locations, industry, Hiring on Social
Media, and exclusion variants of several of these. Two options widen the pool: **Add
contacts without email addresses** (such contacts cost 1 credit each) and **Find phone
numbers** (3 credits per number found). A **Contacts only** mode searches people without
linking them to a company; some filters, like Industry, are unavailable there.

## Lifecycle and states

The Search History tab tracks each search with its date, destination, status, used
credits, contacts found, and owner. A search's status is **Finished**, **No new
contacts**, **Running**, or **Paused**; per-search actions are View contacts, Use this
search again, Pause or Resume, and Delete.

Email validation assigns one of three statuses. **Valid** — verification completed with
no high-risk factors; safe to put into sequences. **Risky** — the recipient's mail
server stated the recipient exists but the address may still bounce: the domain is a
well-known disposable e-mail address provider, a catch-all, or hides a honeypot. Reply
recommends treating Risky as Valid, with the best practice of adding up to 20% Risky
emails to avoid high bounce rates. **Invalid** — a syntax, DNS, or mailbox error;
contacts with Invalid addresses do not receive sequence emails.

AI custom field enrichment leaves each field in one of four states: **Enriched**,
**Missing variables**, **No results found** (the AI processed the request but found
nothing — credits are charged), or **Failed** (a system error — credits are not
charged). All four are filterable on the People page and in sequence Condition steps.

## Configuration

- **Automatic email validation** (Settings → Emails): once the toggle is on, contacts added to a sequence are validated first, using your email validation credits. If a conditional sequence checks the validation status, allow at least 10 minutes of step delay per 1,000 contacts; the condition **Email Validation is set to Valid** with an empty No branch finishes invalid and risky contacts automatically.
- **Automatic LinkedIn URL enrichment** (Settings → Emails → LinkedIn URL enrichment): on by default — sequences with LinkedIn steps enrich contacts that are missing LinkedIn URLs. Toggle **Auto-enrich missing URLs** off to disable.
- **Enrichment modes**: **Keep existing data** only fills missing values; **Override with new data** also updates the job title and company name when more recent information is found.

## Processing behavior

Reply credits are the currency for search and enrichment:

| Operation | Cost |
| --- | --- |
| Live Data search — contact with a LinkedIn profile link but no email | **1 credit** |
| Live Data search — contact with a LinkedIn profile link and an email | **2 credits** |
| Live Data search — contact with a phone number | **3 credits** |
| Enrichment — LinkedIn URL | **1 Reply credit** |
| Enrichment — email address | **2 Reply credits** |
| Enrichment — phone number | **3 Reply credits** |

AI custom field enrichment also consumes Reply credits; the exact cost for a selection
is shown in the confirmation dialog before you confirm. To find emails, the contact's
full name and company name are required; LinkedIn enrichment also tries to find the
contact's job title and company name.

Contacts already saved to your account are not duplicated by default when a search
saves its results — see [Contact deduplication](/behavior/contact-deduplication).

During LinkedIn sequence steps, Reply collects contact data in the background at no
credit cost. Connect and View Profile steps always scrape the profile; Message, Voice
Message, AI Voice Message, Like Recent Posts, Follow Profile, and InMail scrape only if
the contact has not previously gone through any LinkedIn step; Endorse Skills never
scrapes. Collected data — email and phone (only into empty fields) plus the badge labels
Open to Work, Hiring, Creator mode, and Top Voice. An email that already belongs to
another contact is skipped.

Where the LinkedIn URL clean-up option is available, Reply can refresh a contact from
its existing LinkedIn URL: 1 credit per contact for the profile, plus 2 for an email
search and 3 for a phone search. Credits are charged per attempt rather than per result,
but contacts skipped before the lookup — no LinkedIn URL, a malformed URL, or a private
or non-existent profile — are not charged. The refreshed job title comes from the
current work experience entry, not the LinkedIn headline.

## Side effects

- Enrichment writes into the contact profile; saved LinkedIn URLs are normalized to the canonical format — see [Contacts](/specifications/contacts).
- With Accounts enabled, LinkedIn URL clean-up creates an account when none exists for the enriched company, relinks the contact if the company changed, and always overwrites account fields with enriched values — there is no keep-existing option at the account level. See [Companies](/specifications/companies).
- Completion is reported in the Notification Center: validation results, enrichment counts, and an AI-fields enrichment summary that links to a CSV of per-contact results.
- A search saved to a sequence puts its contacts directly into that sequence.

## Limits

| Limit | Value |
| --- | --- |
| Reply credits — every user | **50** basic credits |
| Reply credits — trial | **50** Reply credits for Live Data search |
| Reply credits — Email Volume and Multichannel plans | **50** per month, monthly or annual |
| Contacts without email addresses (option enabled) | **1 credit** each |
| Phone number found (option enabled) | **3 Reply credits** each |
| Email validation | One batch at a time; uses separate email validation credits bought as an add-on |
| Risky-share guideline | Up to **20%** Risky emails in an audience |
| Automatic validation timing guideline | At least **10 minutes** per 1,000 contacts before a condition checks the result |

More platform-wide values: [Limits](/reference/limits).

## Deletion behavior

Deleting a search from the Search History tab removes the search entry from your
history. The contacts it saved are ordinary contact records, managed from the People
page like any others.

## Edge cases

- Pausing a search does not stop it instantly — the system may still add the last batch of 10-20 contacts before stopping.
- With **Find phone numbers** enabled, contacts are still added even when no valid number can be found.
- A prospect with an Invalid validation status can still be moved to a sequence if the sequence has no email steps at the moment — this covers the API as well.
- AI field enrichment charges credits on **No results found** but not on **Failed** — the two statuses are distinct and separately filterable.
- Background LinkedIn enrichment never overwrites existing values, with one exception: a system-generated placeholder email can be replaced by a real email found on LinkedIn.

## FAQ

### What do Reply credits pay for?

Live Data search reveals (1, 2, or 3 credits per contact depending on whether it comes
with a LinkedIn link, an email, or a phone number), contact enrichment lookups (1 per
LinkedIn URL, 2 per email, 3 per phone), and AI custom field enrichment. Email
validation uses separate email validation credits, purchased as an add-on.

### Does re-running a search import duplicates?

No. Contacts already saved to your account are not duplicated by default, and the **Use
this search again** action applies the same filters to find a new batch of contacts.

### Why did enrichment not overwrite a contact's email?

Background enrichment during LinkedIn steps adds email and phone only into empty fields,
and the **Keep existing data** mode fills blanks without touching populated fields. Use
**Override with new data** (or **Replace all**, where the clean-up flow is available)
when you want newer values to win.

### What is the difference between Risky and Invalid?

Risky means the recipient's server said the address exists but delivery may still fail —
a disposable-address domain, a catch-all, or a honeypot; treat it as Valid and keep such
addresses to at most 20% of an audience. Invalid means a syntax, DNS, or mailbox error;
Reply does not send sequence emails to Invalid addresses.

## Related

- [Prospect search](/capabilities/prospect-search) · [Data enrichment](/capabilities/data-enrichment)
- [Find prospects from an ICP](/workflows/find-prospects-from-an-icp)
- [Contacts](/specifications/contacts) · [Lists](/specifications/lists) · [Companies](/specifications/companies)
- [Bounce handling](/behavior/bounce-handling) · [Limits](/reference/limits)

## Build with Reply

- REST API: [docs.reply.io](https://docs.reply.io/api-reference/introduction) — check per-operation status for data endpoints
- MCP: [agents.reply.io/mcp](https://agents.reply.io/mcp) · Agent surfaces: [agents.reply.io/apis](https://agents.reply.io/apis)
