Pharo saves you time and money
Route to the best data provider for each request in seconds.
One endpoint, one bill, every provider — pay only for what you consume, and only consume the credits that give you results.
ONE KEY, EVERY PROVIDER | ONE BILL
Pharo was built to cut enrichment spend by routing every request to the provider most likely to return the field.
What a request looks like
find_phone {"name":"Sarah Lane","company":"halcyon.com"}
LeadMagicskipped · bad fit
Prospeomiss · 0.6s · $0.00
Apollohit · 1.1s · $0.05
Apollo
People Data Labs
LeadMagic
Prospeo
Crustdata
Exa
Parallel
Bright Data
HarmonicOnboarding
CoresignalOnboarding
ZoomInfoOnboarding
Ocean.ioOnboarding
IcypeasOnboarding
ExploriumOnboarding
PredictLeadsOnboarding
CompanyEnrichOnboarding
CrunchbaseOnboarding
ApifyOnboarding
Yellow PagesOnboarding
TrestleOnboarding
OutscraperOnboarding
HunterOnboarding
DropcontactOnboarding
LushaOnboarding
Snov.ioOnboarding
Built for sales and loved by RevOps.
Reps get the number that connects.
RevOps gets one bill and a ledger that explains it.
| Provider | Hit rate | Median | Order | |
|---|---|---|---|---|
| Apollo | 64% | 1.1s | 01 tried first | |
| Prospeo | 58% | 0.6s | 02 | |
| LeadMagic | 51% | 0.4s | 03 | |
| People Data Labs | 47% | 0.9s | 04 | |
| Crustdata | 39% | 1.4s | 05 |
Apolloapi.apollo.io/api/v18 endpoints
People Data Labsapi.peopledatalabs.com7 endpoints
LeadMagicapi.leadmagic.io/v115 endpoints
Prospeoapi.prospeo.io5 endpoints
Crustdataapi.crustdata.com9 endpoints
Exaapi.exa.ai5 endpoints
Parallelapi.parallel.ai5 endpoints
Bright Dataapi.brightdata.com5 endpoints
Harmoniconboarding—
Coresignalonboarding—
ZoomInfoonboarding—
Benchmarked on what actually lands
Apollo
64% · tried first
Prospeo
58%
LeadMagic
51%
People Data Labs
47%
One record from every provider
Prospeo
+1 415 ••• 2214
People Data Labs
+1 415 ••• 2214
Apollo
no direct line
Routing that changes at the border
PROSPEO
DE ·
PEOPLE DATA LABS
US ·
APOLLO
A ledger for every credit spent
- 14:02find_phonehit$0.05
- 14:02find_emailhit$0.02
- 14:03find_phonemiss$0.00
- today3 requests$0.07
Three steps from a blank key to a routed request.
-
01
Connect the brain
Pharo reads your CRM and your closed-won, so the router knows what a good record looks like for your team before it spends a credit.
-
02
Provide evals
Hand it a few contacts you already know the truth on — numbers that rang, emails that landed. Every provider is benchmarked against them, on your data, not the vendor’s claims.
-
03
Start using it through the key
One key. Call it from Claude over MCP, from a workflow tool, or from a script — the route and the bill are the same whichever door you use.
Every endpoint behind the key.
What each provider’s key can actually do, endpoint by endpoint — every one of them behind the same key.
ApolloPeople enrichment
Contact data/people/match
Enrich one person with verified contact and profile data — email, profile, and optionally a mobile number.
ApolloOrganization enrichment
Company data/organizations/enrich
Enrich one company by domain, LinkedIn URL, name or website with full firmographics, funding and technology data.
ApolloPeople search
Lead gen/mixed_people/api_search
Find new people and prospects by job title, seniority, location, employer and technology.
ApolloOrganization search
Lead gen/mixed_companies/search
Find companies by headcount, location, revenue, funding, keywords and technology.
ApolloOrganization job postings
Signals/organizations/{id}/job_postings
Retrieve a company’s active job postings by its Apollo organization id.
ApolloNews articles search
Signals/news_articles/search
Search news articles about companies by organization, category and date.
ApolloComplete person info
Contact data/people/{id}
Get the complete record for a person by their Apollo person id.
ApolloComplete organization info
Company data/organizations/{id}
Get the complete record for a company by its Apollo organization id.
People Data LabsPerson enrichment
Contact data/v5/person/enrich
Enrich one person from an email, profile URL, phone or name + company into a full professional record.
People Data LabsPerson search
Lead gen/v5/person/search
Query the person dataset with SQL or Elasticsearch filters on title, company, location, skills and seniority.
People Data LabsPerson identify
Contact data/v5/person/identify
Return every candidate profile that could match the identifiers you hold, with a likelihood score for each.
People Data LabsCompany enrichment
Company data/v5/company/enrich
Enrich a company by domain, name or profile with size, industry, location, funding and headcount.
People Data LabsCompany search
Lead gen/v5/company/search
Query the company dataset by industry, size, location, founding year and more.
People Data LabsJob title enrichment
Company data/v5/job_title/enrich
Standardise a raw job title into a canonical role, level and function.
People Data LabsIP enrichment
Signals/v5/ip/enrich
Resolve a visitor IP to the company behind it, with location and firmographics.
LeadMagicEmail finder
Contact data/people/email-finder
Find a professional work email from a name and company.
LeadMagicMobile finder
Contact data/people/mobile-finder
Return a direct mobile number for a person from their profile.
LeadMagicEmail validation
Contact data/people/email-validation
Real-time check that an address exists and accepts mail before a rep dials or writes.
LeadMagicProfile search
Contact data/people/profile-search
Enrich a contact with employment history, education and skills from a profile URL.
LeadMagicRole finder
Lead gen/people/role-finder
Locate the person holding a given job title at a target company.
LeadMagicEmployee finder
Lead gen/people/employee-finder
List the people working at a specified company.
LeadMagicJob change detector
Signals/people/job-change-detector
Flag contacts who have moved role or company since you last held them.
LeadMagicPersonal email finder
Contact data/people/personal-email-finder
Find a personal address as a second route to a contact.
LeadMagicCompany search
Company data/companies/company-search
Find a company by domain, name or profile and return its record.
LeadMagicCompany funding
Signals/companies/company-funding
Funding rounds and investors for a company.
LeadMagicTechnographics
Company data/companies/technographics
The platforms and software a company runs.
LeadMagicCompetitors search
Lead gen/companies/competitors-search
Companies competing with a given company — a lookalike list from one seed.
LeadMagicJobs finder
Signals/jobs/jobs-finder
Open positions filtered by occupation, company and location.
LeadMagicGoogle Ads search
Signals/ads/google-ads-search
What a company is running in search advertising right now.
LeadMagicMeta Ads search
Signals/ads/meta-ads-search
What a company is running on Meta right now.
ProspeoEnrich person
Contact data/enrich-person
Verified email, mobile and B2B profile data for one lead.
ProspeoBulk enrich person
Contact data/bulk-enrich-person
The same enrichment for up to 50 contacts in one request.
ProspeoEnrich company
Company data/enrich-company
Funding, technology stack and 50+ organisational data points for one company.
ProspeoSearch person
Lead gen/search-person
Search the contact database with 30+ filters on title, company, location and seniority.
ProspeoSearch company
Lead gen/search-company
Search the company database by industry, size, location and technology.
CrustdataCompany enrich
Company data/company/enrich
Firmographics, headcount, funding, web traffic, employee reviews, people and news for one company.
CrustdataCompany search
Lead gen/company/search
Search the company database with AND/OR filter conditions.
CrustdataCompany identify
Company data/company/identify
Match a company by name, domain, profile URL or id and return confidence-ranked candidates.
CrustdataPerson enrich
Contact data/person/enrich
Employment history, education, skills and developer-platform data for a person.
CrustdataPerson contact
Contact data/person/contact
Business email, personal email and phone numbers for a person.
CrustdataPerson search
Lead gen/person/search
Search profiles by title, company, location, seniority, industry and education.
CrustdataJob search
Signals/job/search
Indexed job listings with title, openings, location, description and the hiring company’s firmographics.
CrustdataWeb search
Web & scrape/web/search
Search across web, news, academic and social sources in one call.
CrustdataWeb fetch
Web & scrape/web/fetch
HTML and page title for up to 10 URLs per request.
ExaSearch
Web & scrape/search
Neural or keyword search over the web, returning results with highlights, summaries or structured output.
ExaContents
Web & scrape/contents
Full page contents, summaries and metadata for a list of URLs.
ExaAnswer
Web & scrape/answer
A cited answer to a question, grounded in live search results.
ExaWebsets
Lead gen/websets
Build a list from a natural-language search, then enrich every row against the web.
ExaMonitors
Signals/monitors
A recurring search delivered to your webhook whenever something new matches.
ParallelSearch
Web & scrape/search
Web search returning excerpts optimised for a model to read.
ParallelExtract
Web & scrape/extract
Relevant content from specific URLs, returned as cleaned markdown.
ParallelTask runs
Web & scrape/tasks/runs
A research task against a schema you define — one company, one question, structured back.
ParallelFindAll runs
Lead gen/findall/runs
Discover every entity matching a natural-language objective, with candidates and evidence.
ParallelMonitors
Signals/monitors
Scheduled tracking of a page or query with webhook notification on change.
Bright DataLinkedIn profiles
Contact data/datasets/v3/scrape
Structured profile records from LinkedIn URLs through the pre-built scraper, in one synchronous call.
Bright DataLinkedIn companies
Company data/datasets/v3/scrape
Structured company pages — about, size, industry, locations — through the pre-built scraper.
Bright DataLinkedIn jobs
Signals/datasets/v3/scrape
Job listings by company or search through the pre-built scraper.
Bright DataSERP
Web & scrape/request
Structured results from Google, Bing, Yandex and DuckDuckGo as JSON.
Bright DataWeb Unlocker
Web & scrape/request
The content of any URL, past anti-bot protection, in real time.
Common questions
How the key works, what a request costs, and what happens when a provider comes up empty.
Do I need API keys for each provider?
No. One Pharo key covers every provider on this page — we hold the vendor accounts; you hold one credential and one bill. And if you already hold your own provider keys, bring them: Pharo routes through your contracts instead of ours.
How is pricing structured?
One bill, metered in credits, and you only consume credits on results — a call that returns nothing costs nothing. There is no plan tier that unlocks a provider; full pricing lands with the public launch.
A provider failed. Do I get charged?
No. A call that returns nothing costs nothing. The router moves to the next provider in the order, and you pay for the one that landed the field.
Which agent frameworks are supported?
The tools are plain HTTPS and JSON — find_phone, find_email and their siblings — so anything that can make a request can use them: a workflow tool, a script, or an agent over MCP. Nothing to rewrite when a provider changes underneath.
What about rate limits?
Each vendor’s limit applies to that vendor. Because the router spreads requests across providers, one vendor’s ceiling is not your ceiling — when one is throttled the next in order takes the request.
