SocialHolmes

Why a failed scrape should cost you nothing

3 min read Revised September 01, 2026

Posts are published in English only. The rest of the site reads in ten languages; these do not, because a translated archive is one nobody keeps current.

Every data API bills one of two ways. Per request: you pay when you ask. Per result: you pay for what comes back. On a pricing page that looks like a detail. On an invoice it is often the largest single factor.

The arithmetic

10,000
handles on the list
70%
resolve — normal for a real list
$1.43
true cost per 1,000, billed per request
$1.00
true cost per 1,000, billed per result

Same advertised rate of $1.00 per thousand in both columns. Per request you pay $10.00 for ten thousand asks and receive seven thousand profiles. Per result you pay $7.00 and receive the same seven thousand. The real rate differs by 43%, and the gap is entirely your fill rate.

Where it gets worse

Fill rate is not a constant. It drops when you chase harder targets, when a platform tightens something, when your list ages, and when you expand into a region where more accounts are restricted. Under per-request billing, every one of those raises your cost per useful row while your usage graph looks unchanged. Request count flat, bill flat, cost per delivered row quietly up by a third.

Where per-request genuinely wins

On a paged endpoint with a high fill rate — comments on posts you already know are busy, followers of large accounts — one request returns hundreds of rows and per-request billing makes that page nearly free. If your workload is overwhelmingly that shape and your targets are hand-picked rather than exported from something, per-request can come out ahead. The question is which model matches the distribution of what you actually ask for.

How to tell which one you are on

The words are used loosely. "Pay per success" usually means per request that returned a 200 — and a 200 with an empty array is a success by that definition, at full price. The question that settles it: if I ask for a hundred and forty come back, what do I pay? If the answer is "a hundred", you are on per-request billing whatever it is called.

What we do

$0.50
per 1,000 rows delivered
40
rows billed when 40 of 100 come back
$0
billed when nothing comes back

One rate, whatever the endpoint returns. A run that comes back with nothing costing nothing is not a goodwill gesture — it falls out of the unit being the row rather than the attempt.

Questions people ask

What is the difference between per-request and per-result billing?
Per request you are charged for asking; per result you are charged for what is delivered. They cost the same when every page comes back full and diverge in proportion to how often they do not.
Does 'pay per success' mean per result?
Usually not. It generally means per request that returned a 200 status, and an empty array is a 200. Ask what a hundred-row request that returns forty rows costs.
What is fill rate?
The share of your targets that come back with usable data. Deleted, private, renamed and region-locked accounts all reduce it, and it falls as an exported list ages.
Does a failed run cost anything here?
No. Billing is on rows delivered, so a run that returns nothing is not charged and a run that returns forty of a hundred rows is charged for forty.

Try it on your own targets

The only comparison that settles anything is your own. A new account gets 1,000 credits, needs no card, and runs on the same endpoints and rate as a paying one.