Enrich.so Platform Help
Help the user with Enrich.so platform questions — from Reverse Email Lookup and LinkedIn Profile Enrichment through Email/Phone Finders, Company Data, Similar Company Search, Employee Search, IP to Company, Job Listings, Bulk Enrichment, and Email Validation. Enrich.so is a real-time B2B data enrichment API platform providing 50+ data points per lookup with a success-based credit model (only pay for verified results).
Step 1 — Gather context
Ask the user:
-
What area of Enrich.so do you need help with?
- A) Reverse Email Lookup — find LinkedIn profile, job title, company, and 50+ data points from an email address
- B) LinkedIn Profile Enrichment — get full profile data from a LinkedIn URL (education, positions, skills, contact info, network info)
- C) Email Finder — find verified business email from name + company, or LinkedIn to Email
- D) Phone Number Finder — find phone numbers from profiles, Email to Phone, Mobile Finder
- E) Company Data Lookup — company details by name, domain, or LinkedIn URL (industry, size, revenue, tech stack, social profiles)
- F) Company Funding & Traffic — funding rounds, investors, amounts, web traffic estimates
- G) Search Similar Companies — find lookalike companies by LinkedIn URL with filters (location, employee size)
- H) Search Company Employees — find decision-makers by company and role with detailed profiles
- I) IP to Company — identify company from IP address (including remote workers)
- J) Job Listings — real-time company job postings search
- K) Bulk Enrichment — batch processing via CSV upload, JSON array, or CSV URL with webhook callbacks
- L) Email Validation / Disposable Email Check / Reverse Email Append
- M) Integrations / API — REST API, Zapier, n8n, Make, webhooks
- N) Account / Billing — plans, pricing, credits
- O) Something else — describe it
-
What's your role?
- A) Sales / SDR / BDR
- B) RevOps / Sales ops
- C) Developer / engineer
- D) Growth / marketing
- E) Recruiter / talent acquisition
- F) Other
-
What are you trying to accomplish? (describe your specific goal or question)
If the user's request already provides most of this context, skip directly to the relevant step. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end — don't gate your response behind gathering complete context.
Note: If the user needs a specialized skill, route them there with a brief explanation of why that skill is a better fit.
Step 2 — Route or answer directly
If the request maps to a specialized skill, route:
- Cross-platform enrichment strategy / multi-tool enrichment ->
- Email deliverability / verification strategy (not Enrich.so-specific) ->
- Prospect list building strategy ->
- Connecting Enrich.so to other tools via middleware ->
- Apollo.io-specific questions ->
- ZoomInfo-specific questions ->
- Clearbit-specific questions ->
Otherwise, answer directly from platform knowledge using the reference below.
Step 3 — Enrich.so platform reference
Provide module-by-module guidance based on the user's area:
Reverse Email Lookup
- What it does: Takes an email address and returns the associated LinkedIn profile, job title, company, location, and 50+ data points
- Endpoint:
GET /v1/api/reverse-email-lookup
with parameter
- Data returned: LinkedIn URL, full name, headline, job title, company name, company domain, location, profile picture, and additional enriched fields
- Use cases: Enrich CRM contacts, identify anonymous leads, append LinkedIn data to email lists, verify contact identity
- Credit cost: 1 credit per successful lookup (no charge if no match found — success-based model)
LinkedIn Profile Enrichment
- What it does: Takes a LinkedIn profile URL and returns comprehensive profile data — education, work history, skills, contact info, network info, certifications
- Endpoint:
GET /v1/api/linkedin-by-url
with parameter (LinkedIn profile URL)
- Data returned: Full name, headline, summary, current and past positions (company, title, dates), education (school, degree, dates), skills, certifications, languages, location, profile picture, connections count, follower count
- Use cases: Pre-call research, lead scoring with enriched data, building prospect dossiers, talent sourcing
LinkedIn to Email
- What it does: Finds the email address associated with a LinkedIn profile URL
- Endpoint: Dedicated endpoint accepting LinkedIn profile URL
- Use cases: Outbound prospecting when you have a LinkedIn profile but need email for outreach
Email Finder
- What it does: Finds a verified business email address from a person's name and company name or domain
- Endpoint: Accepts first name, last name, and company name or domain
- Verification: Returns confidence score and verification status — only charges credits for verified results
- Use cases: Building outbound email lists, finding decision-maker emails for account-based outreach
Phone Number Finder / Mobile Finder
- What it does: Finds direct phone numbers and mobile numbers from LinkedIn profiles or enriched data
- Endpoint: Accepts LinkedIn profile URL or other identifiers
- Use cases: Cold calling campaigns, multi-channel outreach sequences (email + phone)
Email to Phone
- What it does: Finds a phone number associated with an email address
- Endpoint: Accepts email address as input
- Use cases: Adding phone touchpoints to email-based prospect lists
Company Data Lookup
- What it does: Returns comprehensive company information from a company name, domain, or LinkedIn company URL
- Data returned: Industry, company size (employee count), revenue estimates, founding year, headquarters location, description, tech stack, social media profiles, website, specialties
- Use cases: Account research, ICP matching, lead scoring by firmographic data, territory planning
Company Funding & Traffic
- What it does: Returns funding history and web traffic data for a company
- Data returned: Funding rounds (series, amounts, dates), investors, total funding raised, web traffic estimates (monthly visits, traffic sources)
- Use cases: Identifying well-funded prospects, timing outreach around funding events, competitive intelligence
Search Similar Companies
- What it does: Finds lookalike companies based on a LinkedIn company URL, with optional filters for location and employee size
- Endpoint:
POST /v1/api/similar-companies
with LinkedIn company URL and optional filters
- Data returned: List of similar companies with relevancy scores, company details, and LinkedIn URLs
- Filters: Location (country, region), employee count range
- Use cases: Expanding TAM from existing customers, finding new accounts that match your ICP, competitive landscape mapping
Search Company Employees
- What it does: Finds employees at a company filtered by role, seniority, or department — returns detailed profiles
- Endpoint: Accepts company identifier and role/title filters
- Data returned: Employee profiles with name, title, LinkedIn URL, and enriched data
- Use cases: Finding decision-makers at target accounts, org chart mapping, multi-threading into accounts
IP to Company
- What it does: Identifies the company associated with an IP address — works even for remote workers via ISP-to-company mapping
- Endpoint: Accepts IP address
- Data returned: Company name, domain, industry, size, location, LinkedIn URL
- Use cases: De-anonymizing website visitors, personalizing website content by company, intent-based outbound triggers
Job Listings
- What it does: Searches real-time job postings for a company
- Data returned: Job titles, descriptions, locations, posting dates
- Use cases: Hiring signals for sales triggers (company hiring for a role = potential need for your product), competitive intelligence, talent sourcing
Disposable Email Check
- What it does: Detects whether an email address is from a temporary/disposable email provider
- Use cases: Form validation, cleaning email lists, preventing fake signups
Reverse Email Append
- What it does: Converts email hashes (MD5, SHA256) to actual email addresses
- Use cases: Matching hashed audience data to real contacts, data partnerships, identity resolution
Email Validation
- What it does: Verifies email deliverability — checks MX records, mailbox existence, catch-all detection, role-based detection
- Data returned: Validation result (valid/invalid/risky), catch-all flag, role-based flag, disposable flag, free provider flag
- Use cases: Cleaning email lists before outreach, reducing bounce rates, protecting sender reputation
- Free tool: Basic email validation available without credits
Bulk Enrichment
- What it does: Batch processing for any enrichment type — submit large datasets and get results asynchronously
- Endpoint:
POST /v1/api/bulk-enrichment
— submit job; GET /v1/api/bulk-enrichment-results
— retrieve results by
- Input methods: CSV file upload, JSON array, or CSV URL
- Supported types: person, company, find-email, mobile-finder, linkedin-to-email
- Webhook support: Set parameter to receive a callback when the bulk job completes
- Async workflow: Submit job -> receive -> poll for results or wait for webhook callback
- Use cases: Enriching CRM exports, processing marketing lists, periodic data refresh
Data model
| Object | Description | Key fields |
|---|
| Person | Enriched individual profile | full_name, email, phone, linkedin_url, headline, job_title, company, location, skills, education, positions |
| Company | Enriched company record | name, domain, linkedin_url, industry, employee_count, revenue, founded, headquarters, tech_stack, social_profiles, specialties |
| Funding | Company funding data | rounds (series, amount, date, investors), total_funding |
| Traffic | Web traffic estimates | monthly_visits, traffic_sources, traffic_trend |
| Similar Company | Lookalike match | company_data, relevancy_score, linkedin_url |
| Employee | Company employee profile | name, title, linkedin_url, department, seniority |
| Job Listing | Active job posting | title, description, location, posted_date, company |
| Email Validation | Validation result | email, status (valid/invalid/risky), catch_all, disposable, role_based, free_provider |
| Bulk Job | Async enrichment job | uid, status, type, total_records, completed_records, webhook_url |
API quick reference
- Base URL:
- Authentication: Bearer token —
Authorization: Bearer <token>
header on all requests
- Format: JSON request and response bodies
- Key endpoints:
GET /v1/api/reverse-email-lookup
— reverse email lookup (50+ data points)
GET /v1/api/linkedin-by-url
— LinkedIn profile enrichment by URL
- — find email from name + company
POST /v1/api/mobile-finder
— find phone number from profile
POST /v1/api/linkedin-to-email
— find email from LinkedIn URL
POST /v1/api/email-to-phone
— find phone from email
GET /v1/api/company-lookup
— company data by name/domain/LinkedIn URL
GET /v1/api/company-funding
— funding rounds and investors
GET /v1/api/company-traffic
— web traffic estimates
POST /v1/api/similar-companies
— find lookalike companies
POST /v1/api/company-employees
— search employees by company and role
GET /v1/api/ip-to-company
— identify company from IP address
- — real-time job postings for a company
GET /v1/api/disposable-email
— check if email is disposable
POST /v1/api/reverse-email-append
— convert email hash to address
GET /v1/api/email-validation
— verify email deliverability
POST /v1/api/bulk-enrichment
— submit bulk enrichment job (async, returns uid)
GET /v1/api/bulk-enrichment-results
— retrieve bulk job results by uid
- Rate limits: Vary by plan — higher tiers get higher throughput
- SDKs / examples: cURL, JavaScript, Python, Java, Ruby, PHP code examples in docs
- Docs: docs.enrich.so
Integrations
| Category | Tools |
|---|
| Automation | Zapier (reverse email lookup, IP to company triggers/actions), n8n, Make (Integromat) |
| API | REST API with Bearer token auth — integrate with any system that can make HTTP requests |
| Free tools | Company Logo Finder (get company logo by domain), Email Validation (free basic checks) |
Pricing (USD, as of March 2026 — verify current pricing at enrich.so)
| Plan | Price | Key features |
|---|
| Free | $0 | 25 credits to trial all endpoints |
| Starter | $59/mo | Basic API access, email verification, up to 10 team members |
| Professional | $99/mo | Higher credit volumes, all endpoints |
| Scale | $149/mo | Highest standard tier, priority support |
| Enterprise / Custom | Custom pricing | Volume discounts, dedicated support, custom integrations |
| Pay-as-you-go | From $20/100 credits | Top up credits without a monthly plan |
Key pricing notes:
- Success-based credit model — credits are only consumed when Enrich.so returns successfully verified data. No charge for lookups that return no results.
- Credit costs vary by endpoint — person enrichment, company lookup, email finder, and phone finder may consume different credit amounts.
- Bulk enrichment uses the same credits as individual lookups — no separate pricing.
Step 4 — Actionable guidance
Based on the user's specific question:
-
Enriching a list of email contacts with LinkedIn data:
- Prepare your list as a CSV with an column
- Use the Bulk Enrichment endpoint:
POST /v1/api/bulk-enrichment
with type and upload your CSV (or pass a JSON array or CSV URL)
- Include in the request body to receive a callback when processing completes — avoids polling
- Retrieve results:
GET /v1/api/bulk-enrichment-results?uid=<uid>
using the uid returned from the submit call
- Results include LinkedIn URL, job title, company, location, and 50+ data points for each matched email
- Import enriched data back into your CRM — map fields to your CRM's contact properties
- Only successfully enriched records consume credits — no charge for unmatched emails
-
Finding decision-maker emails at target accounts:
- Start with your target company's LinkedIn URL or domain
- Use Search Company Employees to find people by role: filter for titles like "VP Sales", "Head of Engineering", "CTO"
- For each matching employee, use LinkedIn to Email to get their business email address
- Validate each email with the Email Validation endpoint before outreach — check for catch-all domains and invalid mailboxes
- Optionally use the Phone Number Finder to add phone touchpoints for multi-channel sequences
- For large account lists, use Bulk Enrichment with type to process in batch
-
De-anonymizing website visitors with IP to Company:
- Capture visitor IP addresses from your web server logs or analytics platform
- Call
GET /v1/api/ip-to-company
with each IP address
- Enrich.so returns the associated company name, domain, industry, size, and LinkedIn URL — works for remote workers too
- Match returned companies against your ICP criteria (industry, size, revenue) to prioritize follow-up
- Use Company Data Lookup to get full firmographic details on high-priority matches
- Use Search Company Employees to find the right contact at each identified company
- Automate the pipeline with Zapier (IP to Company trigger) or your integration platform of choice
-
Building a lookalike company list:
- Identify your best customers' LinkedIn company URLs
- Call
POST /v1/api/similar-companies
with each URL — optionally filter by location and employee size to match your ICP
- Results include relevancy scores — prioritize companies with scores above your chosen threshold
- Enrich top matches with Company Data Lookup for full firmographics (industry, revenue, tech stack)
- Use Search Company Employees to find decision-makers at each new target account
- Use Email Finder or LinkedIn to Email to get contact details for outreach
-
Setting up Enrich.so API integration:
- Sign up at enrich.so and retrieve your API token from the dashboard
- Set the Authorization header on all requests:
Authorization: Bearer <your-token>
- Test with a single lookup:
GET https://api.enrich.so/v1/api/reverse-email-lookup?email=test@example.com
- Handle responses: check the HTTP status code — 200 for success, 404 for no match (no credit charged), 401 for auth errors, 429 for rate limits
- For bulk workflows, use the async bulk enrichment endpoint rather than looping individual calls — more efficient and avoids rate limits
- Set up webhook callbacks for bulk jobs to avoid polling: include in the bulk request body
- Monitor credit usage in the Enrich.so dashboard — set up alerts to avoid unexpected depletion
Gotchas
Best-effort from research — review these, especially items about plan-gated features and integration gotchas that may be outdated.
- Success-based billing means no charge for misses, but credit costs vary by endpoint — check the pricing page for per-endpoint credit costs before budgeting. A person enrichment lookup may cost a different number of credits than a company lookup or phone finder. Plan your credit allocation based on the mix of endpoints you use, not just the total number of lookups.
- Bulk enrichment is async — you must poll for results or use webhooks. Submitting a bulk job returns a immediately, but results are not available in the response. You need to either poll
GET /v1/api/bulk-enrichment-results?uid=<uid>
until the job completes or include a in your request to get notified. Jobs with large datasets can take minutes to hours depending on size.
- LinkedIn profile enrichment depends on LinkedIn URL format — use the canonical profile URL. Pass the full
https://www.linkedin.com/in/username
format. Shortened URLs, Sales Navigator URLs, or URLs with query parameters may not resolve correctly. Strip tracking parameters before calling the API.
- IP to Company accuracy varies — shared IPs, VPNs, and cloud providers will not resolve to a specific company. The endpoint works best with corporate IP ranges and ISP-to-company mapping for remote workers, but visitors using VPNs, shared office spaces, or cloud-based browsing will return inaccurate or no results. Expect a match rate below 100% and validate high-priority matches.
- Zapier integration is limited to specific triggers/actions (reverse email lookup, IP to company) — for other endpoints, use the REST API directly or a custom Zapier webhook step. Not all Enrich.so endpoints have native Zapier triggers/actions. For endpoints like Similar Companies, Employee Search, or Bulk Enrichment, you will need to use Zapier's webhook action or connect via n8n/Make with HTTP request nodes.
Step 5 — Related skills
- — Cross-platform data enrichment strategy (multi-tool enrichment workflows, waterfall enrichment)
- — Email deliverability and verification strategy (SPF/DKIM/DMARC, warmup, inbox placement)
- — Prospect list building strategy and best practices
- — Connect Enrich.so to CRM, automation tools, or other platforms
- — Not sure which skill to use? The router matches any sales objective to the right skill. Install:
npx skills add sales-skills/sales --skills sales-do
Examples
Example 1: Enriching CRM contacts with LinkedIn and company data
User says: "I have 500 contacts in my CRM with just email addresses. I want to add LinkedIn profiles, job titles, and company info to each one."
Skill does:
- Recommends exporting contacts as a CSV with an column
- Uses Bulk Enrichment (
POST /v1/api/bulk-enrichment
) with type and the CSV upload — explains the async workflow and webhook callback option
- Retrieves results with
GET /v1/api/bulk-enrichment-results?uid=<uid>
once the job completes
- Maps returned fields (linkedin_url, job_title, company_name, company_domain, location) to the user's CRM contact properties
- Explains that only successfully matched contacts consume credits — unmatched emails cost nothing
- Recommends running Company Data Lookup on unique company domains from the results to add firmographic data (industry, size, revenue) at the account level
Result: User has 500 contacts enriched with LinkedIn profiles, job titles, and company details — ready for segmentation and personalized outreach
Example 2: Finding and validating decision-maker emails at target accounts
User says: "I need to find the VP of Engineering's email at 20 target companies for an outbound campaign."
Skill does:
- Collects the 20 company LinkedIn URLs or domains from the user
- Uses Search Company Employees for each company, filtering by title containing "VP" and department "Engineering"
- For each matched employee, uses LinkedIn to Email to find their business email address
- Validates each email with the Email Validation endpoint — flags catch-all domains, invalid mailboxes, and role-based addresses
- Optionally uses Phone Number Finder to add direct dial numbers for multi-channel outreach
- Delivers a clean list of 20 verified decision-maker contacts with email, phone, LinkedIn URL, and title
Result: User has a validated, enriched contact list of engineering VPs ready for personalized outbound sequences
Example 3: Identifying high-intent website visitors and routing to sales
User says: "We get 10K website visitors a month but don't know who they are. Can Enrich.so help us identify companies visiting our site?"
Skill does:
- Explains the IP to Company endpoint — capture visitor IPs from web server logs or analytics, then call the API to identify the company behind each IP
- Sets up an automated pipeline: visitor IP -> IP to Company API -> filter by ICP criteria (industry, employee count, revenue) -> alert sales team
- Recommends using Zapier's IP to Company integration for a no-code setup, or a custom webhook for real-time processing
- For matched companies, chains Company Data Lookup for full firmographics and Search Company Employees to find the right buyer persona
- Cautions that VPN users, shared IPs, and cloud provider IPs will not resolve — expect 20-40% company match rate depending on traffic mix
- Suggests combining with job listing signals (companies hiring for roles your product supports) to prioritize outreach
Result: User has an automated visitor identification pipeline that surfaces high-intent companies visiting their site and routes enriched leads to the sales team
Troubleshooting
Bulk enrichment job stuck or returning incomplete results
Symptom: A bulk enrichment job submitted via
POST /v1/api/bulk-enrichment
returns a uid, but polling
GET /v1/api/bulk-enrichment-results
shows the job as still processing after an extended period, or results are missing rows.
Cause: Large bulk jobs take time to process — the async nature means results are not instant. Incomplete results can occur if the input file has formatting issues (malformed CSV, missing required columns, encoding problems) or if some rows contain invalid data that cannot be processed.
Solution: First, check that your input file is valid — CSV should be UTF-8 encoded with the correct column headers for the enrichment type (e.g.,
for person enrichment,
for LinkedIn enrichment). If the job is still processing, continue polling or wait for the webhook callback — large jobs (10K+ rows) can take 30 minutes to several hours. If results are missing rows, check the job status for error counts — some rows may have failed individually. Re-submit failed rows in a separate batch. If the job appears permanently stuck, contact Enrich.so support with the job uid.
Reverse email lookup returning no results for valid emails
Symptom: Calling the Reverse Email Lookup endpoint with a known valid business email returns no match (HTTP 404 or empty result), even though the person has a LinkedIn profile.
Cause: Enrich.so's reverse email lookup depends on the email being associated with a LinkedIn profile or other indexed data sources. If the person uses a different email on LinkedIn, has a private profile, or the email-to-profile mapping has not been indexed, no match will be returned. Free email providers (Gmail, Yahoo) have lower match rates than business domains.
Solution: Verify the email is spelled correctly and is the person's primary business email. If using a free provider email, try the person's work email instead — business domains have significantly higher match rates. As an alternative path, if you know the person's name and company, use the Email Finder endpoint to find their business email, then try the reverse lookup with that address. If you have their LinkedIn URL, use LinkedIn Profile Enrichment directly instead of the reverse lookup.
API returning 401 Unauthorized despite valid token
Symptom: API requests return HTTP 401 even though the API token appears correct in the dashboard.
Cause: Common causes include: the token has leading/trailing whitespace when copied, the Authorization header format is wrong (must be
, not
or just the token), the token was regenerated and the old one is being used, or the account has been suspended due to billing issues.
Solution: Copy the token fresh from the Enrich.so dashboard — watch for trailing spaces or newline characters. Verify the header format is exactly
Authorization: Bearer <token>
with a single space after "Bearer". Check that you are using the current active token (regenerating a token invalidates the previous one). Verify your account is in good standing — check for billing alerts or suspension notices in the dashboard. Test with a simple cURL command to isolate whether the issue is in your code or the token itself:
curl -H "Authorization: Bearer <token>" "https://api.enrich.so/v1/api/reverse-email-lookup?email=test@example.com"
.