Agencies buy lists by client. Per-seat tools charge by head.

An agency's cost structure and a per-seat contact database are aimed in opposite directions. The agency sells a list per client, per campaign, per quarter - the work arrives in lumps and the headcount stays flat. A seat licence charges the same amount in a quiet month as in a busy one, and it charges per person rather than per project.

Published prices, compared the way an agency actually spends

Only the vendors' own published list prices appear here - nothing inferred.

ToolPublished entry price4-seat team, per yearHow it scales
Apollo (Basic)$49/user/mo, billed annually (apollo.io/pricing)$2,352Per seat, whether or not new work arrives
Hunter (Starter)from $34/mo, 50 free credits (hunter.io)$1,632Per seat + credits
Lusha (Starter)$49.90/mo (lusha.com)$2,395.20Per seat, credits on top
ZoomInfoNot publishedQuote onlyAnnual contract, seat-based
TAPAC100 free searches, then $0.10-0.50/contact, pay-per-use$0 in a quiet monthPer verified contact you actually look up

Read the third column as a bar rather than a saving. A four-seat Apollo Basic plan spends about $2,352 a year regardless of workload. At $0.30 per verified contact, that same money is roughly 7,840 contacts - about 4,700 at the $0.50 ceiling, about 23,500 at $0.10. If your agency looks up fewer verified contacts than the bar, the seat plan is the expensive side; if you look up far more, the per-contact side is.

Three things agencies pay for without noticing

  1. Seats for people who do not search. The strategist, the account manager, the founder who checks a list once a month. Seat pricing has no way to price a light user, so they are priced as if they were power users.
  2. Credits that expire. A retainer that pauses for two months does not pause the invoice. Usage-based pricing follows the calendar the agency actually works in.
  3. The second tool. A contact database finds addresses; a separate verifier checks them. That is a second contract, a second seat count and a second export to reconcile - for a step that can happen inside the search that found the address.
The unit an agency should be pricing against is the usable contact per client campaign - not the seat, and not the raw record. A record that bounces on send is a cost with no deliverable attached.

Deliverables a client can read

Client work is judged on what was handed over. A list where every row carries the source page the address was found on, plus the date and state of its last check, is reviewable by a human who was not involved in building it. A CSV of addresses with no provenance is not a deliverable - it is a file the client cannot audit and will eventually re-buy.

The freshness numbers back that up: 23% of contacts change jobs in a year (ZoomInfo, 2025), 40% of addresses are dead within two years (NeverBounce), and fresh data outperforms stored databases by 42% (Harvard Business Review, 2024). Those percentages are the reason a list handed over six months ago is not the list the client still owns.

How TAPAC fits agency work

One key, one endpoint, no seat count: contacts are found and verified in the same request, and each one returns with its address, its source and its SMTP state as of that call. Campaigns can equally be run by an agent over MCP, which means the search step does not need a person sitting in a UI at all.

npx -y @tapacapi/mcp        # tools: tapac_find_contacts, tapac_status
# or hosted: https://tapacapi.com/mcp
# or REST:   POST https://tapacapi.com/v1/contacts/search

100 free searches to start, then $0.10-0.50 per verified contact, pay-per-use. Bill the client for contacts you looked up; do not bill them for a seat you kept warm.

← Back to TAPAC