ScrapeField
For the first day of this company, a response served from cache cost nothing. It felt generous: if we already had the answer, charging for it seemed like charging for our own plumbing. We changed it, and the change is worth explaining, because the reasoning is the whole idea behind how we price.
You pay for the answer
A call to google-maps/place costs 3 credits. Before, it cost 3 credits — unless we happened to have fetched that place recently, in which case it cost 0. From where you sit, those two calls are identical: the same request, the same response, the same fields. The only difference is something you cannot see and do not control, which is the state of our cache.
A price that moves with the seller’s internal state is exactly the kind of unforecastable bill this company exists to avoid. You could not multiply our table by your volume and get your invoice, because the answer depended on who else had asked for the same thing that week. Charging the same for every successful call means the table is the bill.
Freshness is still visible
A cached response says so. Every response carries cached and the original fetched_at, so you always know how old an answer is, and fresh=true forces a new fetch when age matters. What changed is the price, not what we tell you.
The argument against, which we kept
A customer polling the same profile every hour now pays full price for data we did not have to fetch, and could build their own cache in ten lines. If a large customer does that arithmetic, they will — and we will have traded a differentiator for revenue that disappears. If we see it happening, the answer is a better volume rate, not a return to free hits. We wrote that down before it happened, so we cannot pretend later that we did not see it coming.
What did not change
A call we fail costs nothing, and the refund appears in your usage ledger automatically. Credits never expire. The pricing page is the whole price.