I Tested a Data Vendor on 93 Real Leads and Spent Zero Credits
Every B2B data vendor publishes a coverage number. Hundreds of millions of contacts. Tens of millions of companies. Not one of those numbers answers the question you actually have, which is how many of the businesses on your list they can hand you a named decision-maker for.
That answer depends on your market. Mine is small B2B service businesses: agencies, consultancies, IT providers, law firms. The big databases skew toward tech and mid-market, which is not where I live.
So before committing to one, I ran a vendor's database against 93 of my own leads and got a real coverage figure. It cost zero credits. Here is the method, because you can run it before you pay anyone.
The fact that makes this cheap
Most contact databases separate two operations and price them differently.
Search asks "who works at this company, in these roles?" You get back names, titles, company, domain, and the status of the email address they hold. You do not get the address.
Reveal hands you the actual address. That is what consumes a credit.
Search is free. That distinction is the whole trick. You can ask a vendor's database about every business in your backlog and never spend anything.
Most people never test this way because they think of a data vendor as a thing you buy contacts from. It is also a thing you can interrogate.
What I did before paying at all
There is a wrinkle. Apollo's free tier has limited API access, so the free-search trick still needs a subscription to run at scale. That is exactly the trap it is meant to solve.
The way around it was a manual bake-off. Six leads, three from each of two workspaces, covering three failure shapes: a business with no email anywhere, a named person with no contact details, and a LinkedIn profile with nothing attached. I looked all six up by hand in Apollo's free web interface, and ran the same six through Hunter's API, whose free tier does include API access.
Apollo found a person for 6 of 6, with an email for 5. Hunter found 3 of 6.
The interesting part was not the score. All three of Hunter's misses were caused by bad domains in my data, not by anything missing on their side. That exposed a structural difference worth more than the test itself. Hunter is domain-keyed, so a wrong domain going in guarantees nothing comes out. Apollo is entity-keyed, resolving the company from its own records, so my bad domain never enters the query.
That told me which vendor to subscribe to, and to query by name and company rather than by domain. Apollo's paid plans all include full API access, so the cheapest tier is enough to run the test.
I built a probe, not a pipeline
Once the key was loaded, the tempting move was to wire the vendor into ApexOutreach and see what came out. I have been burned by that. Instead I built one admin-only button that ran a single search and returned three things: the mapped results, the usage headers, and the untouched raw first record.
That last one matters more than it sounds. Building against field names you assumed rather than observed is how you spend a day debugging a pipeline that was never going to work.
The probe also settled a design question the docs could not. Apollo has no "decision maker" filter, because no database has one. It has job titles. So the role my system thinks in had to be mapped to a concrete list: owner, founder, CEO, president, managing partner. That mapping is a judgement call, better made in the open than buried in a pipeline.
The first run returned 48 errors
Which was useful.
The endpoint I was calling was the one Apollo's web interface uses. API callers get a different one, and the correct name had been sitting in a list I was sent weeks earlier. Ten-second fix.
The second bug from that run is the one worth writing down. My code stamped each lead "checked" after processing it, so nothing would be reprocessed. It stamped that marker on failures too. Those 48 leads had been written off permanently by a transient API error, and nothing would have alerted me, because from the outside a written-off lead and a genuinely checked lead are the same record.
Never let a failure path write the same "done" marker as a success path. That one has cost me more than any bug this year.
The number
The clean run:
Searched 93. Apollo has a contact for 77. No match 16. No domain 0. Zero credits spent.
83% coverage, on real businesses my own pipeline had already found and already failed to get a contact for. Better evidence than a sample probe, because these are precisely the leads where free web scraping had lost. The hard half of my list, and the vendor covered most of it.
It came with a second free measurement. The search response says whether each address the vendor holds is verified or guessed, so you learn coverage and quality in one pass. I decided then never to buy a guessed address, the likeliest thing in any pipeline to bounce.
Do this before you pay anyone
- Pull 50 to 100 real businesses off your own list. Not a clean sample. The ones you have already failed to reach.
- Check whether their free tier gives you API access. Most do not. If it does not, hand-check six representative leads in the web interface first, then subscribe to the cheapest paid tier for a month.
- Find the search endpoint and confirm it consumes no credits. Read your usage headers after the first call to prove it rather than trusting the docs.
- Run every lead through search. Count matched, no-match and no-domain separately, because "no domain" is your data problem and not their coverage.
- Record what the status field says about each address before you buy any of them.
You end up with your own coverage number instead of theirs, on your own market, before spending a credit. If it comes back at 83%, subscribe. If it comes back at 30%, you just saved a year of paying for a database that does not know your customers.
Rather see the output than build the test? Tell us who you sell to and we will send you three real decision-makers in your market plus the exact email we would send the first one, free: apexoutreach.app/find. No signup, no card.
It finds the right prospects, writes personalized emails, sends from your own inbox, and handles replies and follow-ups automatically.
Start a free trial
