If you bill per result, there is one design decision that quietly decides whether customers trust you: what you do when you could not get an answer.
Most usage-billed APIs collapse the world into two states. The call worked, or it failed. Valid or invalid. Found or not found. That binary is where the trust leaks out, because it hides a third state that happens constantly in the real world: you asked, and the system genuinely could not tell you right now.
A concrete example
Say you run an email verification endpoint. A customer sends an address, you check it, you bill for the answer. Easy.
Then a DNS lookup times out. Or the domain returns SERVFAIL. Or the mail server greylists your probe and hangs. What do you return?






