Three people on a sales team. One of them spends an afternoon a week inside a contact database UI, exporting lists and pasting them into a sequencer. Then someone wires an MCP server to Claude and the export step disappears — but the invoice doesn't. The per-seat licence is still there, still billing for three humans, one of whom is now watching an agent do their job.
That mismatch is the whole story behind per-seat contact databases in 2026.
What the published prices actually say
I only use vendors' own list prices here, because "contact data is overpriced" is an argument, and a number is evidence. As published by the vendors:
| Vendor | Entry price (published) | What a 3-person team starts at |
|---|---|---|
| Apollo.io | Free tier; Basic $49/user/month billed annually (~30k credits/yr) | ~$1,764/year before overages |
| Lusha | Free 40 credits/month; Starter $49.90/month annual | ~$1,796/year |
| Hunter.io | Free 50 credits/month; paid from $34/month annual; Growth $149/month | from $408/year on one seat |
| ZoomInfo | Not published — consumption credits, quote-based | quote |
Note what those plans are actually selling: a person at a chair. The credit ladders exist to limit how much data each chair can pull, not to price the data itself. That model was correct when retrieval had to be done by hand — the expensive part was the human, and you hired the human, so you paid per human.
Why the pricing unit breaks
The unit of value moved. An agent calling a contacts tool doesn't consume a seat, doesn't need a UI, doesn't need a sequence builder or a dialer. It needs one thing: a record that is real, plus a signal saying the mailbox is still alive.
Two facts make that the only part worth paying for:
- 23% of contacts change jobs every year (ZoomInfo, 2025) — the record decays from the moment it's stored.
- 40% of emails are dead within two years (NeverBounce) — so "verified" is a timestamp, not a property.
Per-seat pricing charges you monthly for access to decaying rows. Per-contact pricing charges for the retrieval event — and if the retrieval event is also the verification event, the price and the value line up.
What that looks like as a tool call
I run TAPAC, so treat this as a worked example rather than a neutral survey. The server exposes two tools over MCP:
tapac_find_contacts(industry, job_titles, company_size, location, source, limit)
-> name, title, company, email, source, SMTP-verified status
tapac_status()
-> key state + remaining quota
npx -y @tapacapi/mcp, or a hosted streamable-http endpoint at https://tapacapi.com/mcp. Contacts are sourced live from company websites, Discord and Telegram; every address is checked over SMTP at request time; pricing is $0.10–0.50 per verified contact after 100 free searches, no seat fee and no annual commit.
The interesting part isn't the price per record — it's that the seat count stops being a variable. Adding a second agent, a second workflow, or a second person costs nothing until contacts are actually found.
The counter-argument, honestly
If humans live in the tool all day, a seat model is better for them and for the vendor: predictable spend, a UI to work in, CRM sync, support. Apollo and ZoomInfo sell a sales platform with contact data as one module; that's a different product, and it's a legitimate one.
The failure mode is buying the platform because you need the data. That happens a lot, and it's expensive: you pay for seats you use to export lists that something else could fetch.
The test I'd apply
Ask what your retrieval looks like in twelve months. If a person is still clicking, buy the seat. If a tool call is going to do it, buy the retrieval — and check that whatever you buy returns a verification status with the record, because an automated pipeline running on unverified rows just automates the bounce.
TAPAC is an MCP server + REST API that finds and verifies B2B contacts: npx -y @tapacapi/mcp. 100 free searches, then $0.10–0.50 per verified contact. Competitor prices above are the vendors' own published list prices; the decay figures carry third-party attribution.
Top comments (0)