Most data tools bill by seat, by API call, or by the month, regardless of whether you got anything useful. That arrangement puts all the quality risk on you: the vendor is paid the same whether a record is current and complete or stale and half-empty.
VoxScrape bills per result returned. Everything below follows from that single decision, and the properties it produces are enforced in the billing code rather than promised in a support policy — which is the only version of that promise worth anything.
How a credit hold works
When you configure a run and submit it, we estimate the maximum number of results it could return and place a **hold** for that amount. Ask for 100 results from a source costing 10 credits each, and 1,000 credits are held.
A hold is not a charge in the card-payment sense. It reserves credits so that two runs started at the same time cannot overdraw your balance — a genuine concurrency problem when several people share one account.
When the run finishes, the hold is settled against what actually came back. If 87 results returned, you are charged 870 credits and the remaining 130 are released to your balance immediately. No rounding up, no minimum charge, no "we reserve the right to".
Three properties worth understanding
**Failed runs cost nothing.** If a source is unreachable, an upstream platform errors, or the job is aborted before results are retrieved, the entire hold is released automatically. There is no request to file and no review step. The same applies to AI operations — a scoring or enrichment call that fails or times out is refunded before the error is even returned to you.
**Zero results costs nothing.** A run that executes successfully but finds no matches settles to zero credits, because zero results at any per-result price is zero. Searching is free; receiving is what you pay for.
**A run can never exceed its hold.** Results are truncated to the size of the hold before they reach you. If you paid to receive 100 and a source returns 140, you receive 100. The number you enter in the results field is therefore a hard ceiling on both what you get and what you spend — there is no scenario where a run overruns its estimate and bills you for the overage.
That last one is worth dwelling on, because it inverts the usual anxiety about metered pricing. You cannot get a surprise bill. The maximum cost of any run is knowable before you start it.
Why sources cost different amounts
Per-result prices vary by roughly fifty times across the platform, and the spread is not arbitrary — it tracks the actual work per result:
- **Leads Finder: 1 credit.** A structured database lookup returning a contact record.
- **Twitter: 1 credit.** A short post plus its author profile — a small unit of data.
- **Reddit Pro: 3 credits.** Posts with optional comment threads.
- **Google Maps: 10 credits.** A business listing with enriched fields.
- **LinkedIn Profiles: 30 credits.** Visiting and parsing a complete profile page.
- **YC Scraper: 55 credits.** A deep multi-part record including founder detail.
The practical consequence is that source selection is a cost decision as much as a data decision. Using LinkedIn Profiles for discovery when Leads Finder would do is thirty times more expensive for a worse result, because Profiles is an enrichment tool being asked to do a discovery job. Matching the tool to the task is where most of the savings live.
AI actions, and the order to run them in
AI operations are charged per unit processed:
- Lead Scoring: 2 credits per row
- Intent Detection: 2 credits per post
- Smart Enrichment: 3 credits per row
- Message Writer: 5 credits per row
- Post Summarizer: 15 credits per batch of up to 50
The order matters more than the individual prices. Scoring is the cheapest operation and removes the most waste — it typically eliminates half a list. Message Writer is the most expensive per unit. Running scoring first, then personalising only the top slice, costs a fraction of running personalisation across everything, and produces better outreach because the effort concentrates where it can convert.
Concretely: 100 leads scored (200 credits) then messaged on the top twenty per cent (100 credits) is 300 credits. Messaging all 100 without scoring is 500 credits for a demonstrably worse campaign.
Subscription credits and expiry
Each plan includes an allocation granted at the start of every billing period. Subscription credits are **allocated for that period and do not roll over** — an unused balance resets when the next allocation arrives.
This is why plans are sized around usage rather than sold as a credit bank. If you routinely finish a period with a large unused balance, you are on too big a plan and should move down. If you routinely run out, a top-up pack or the next tier costs less than the interruption to your workflow.
Top-up packs, available on Starter and above, are a separate matter. They are one-time purchases held in their own balance and drawn down after subscription credits are exhausted. Because they are consumed rather than time-limited, they are non-refundable once purchased — so buy the size you will use.
Which plan fits
**Scout** ($10/month, 1,000 credits) covers individual prospecting with Leads Finder. It is the entry tier and is limited to that one source, with no AI actions.
**Starter** ($69/month, 10,000 credits) covers a full SDR workflow. A realistic weekly loop — 200 contacts, scored, with the top forty personalised — runs around 800 credits, so one rep can execute weekly with substantial headroom for intent monitoring.
**Pro** ($149/month, 50,000 credits) suits teams, agencies, and anyone running several sources daily. It also unlocks the Pro-gated sources: LinkedIn Company, LinkedIn Posts, Instagram Email, and Social Email.
The comparison worth making is not against a cheaper data vendor. It is against the hours currently spent assembling lists by hand. One recovered selling day per rep per week is a larger number than anything on the pricing page.
Estimating before you commit
Two habits prevent nearly all billing surprises.
First, narrow your filters before widening them. A tightly filtered run costs less *and* returns a better list, so the instinct to cast wide and clean up later is wrong on both axes.
Second, watch for multiplied result counts. Some sources return a product rather than a simple count — Google Search returns pages multiplied by results per page, and enabling Reddit comment collection multiplies posts by their comment threads. These are the two places where a run comes back larger than expected. Running a small test first tells you the ratio in your specific case, and costs almost nothing to find out.
