"50 free credits."
You signed up, saw that in the dashboard, and now you're wondering what it actually means. How many API calls is that? Will you burn through it in 10 minutes? Why do some APIs cost more than others?
Fair questions. Let's clear it up.
The Short Version
One credit = one API call. For most APIs, anyway.
Your account has a credit balance. Every successful API request subtracts from it. When you hit zero, requests stop working until you add more credits or your monthly allowance resets.
That's really it. The rest is details.
Why Credits Instead of Just Counting Requests?
Because not all requests are equal.
Looking up an IP address takes milliseconds. Extracting text from a 50-page PDF? That's actual work. Running AI inference? Even more.
Credits let providers price fairly. Simple stuff costs 1 credit. Heavy processing might cost 5-10.
| Request Type | Typical Cost |
|---|---|
| IP lookup, email validation | 1 credit |
| QR code generation | 1 credit |
| PDF text extraction | 2-5 credits |
| AI text generation | 5-20 credits |
You're paying for compute, not just request count.
What Doesn't Cost Credits
Failed requests from your end (400-level errors) typically don't count. You messed up the request — no charge.
Server errors (500-level) definitely shouldn't count. That's their problem, not yours.
Requests that never complete due to timeouts? Depends on the provider. Check before assuming.
Tracking What You're Spending
Most dashboards show your balance and recent usage. If you want to track programmatically:
// Check your remaining balance (if the API supports it)
const usage = await fetch('https://api.apiverve.com/v1/account/usage', {
headers: { 'x-api-key': process.env.API_KEY }
}).then(r => r.json());
console.log(`${usage.data.credits_remaining} credits left`);
Set up alerts before you hit zero. Finding out you're out of credits because production broke is a bad morning.
Actually Saving Money
Cache responses. IP addresses don't change location. Validated emails stay validated. Store results and skip duplicate calls.
const cache = new Map();
async function lookupIP(ip) {
if (cache.has(ip)) return cache.get(ip);
const data = await fetchIPLookup(ip);
cache.set(ip, data);
return data;
}
Validate client-side first. Don't spend a credit checking if not-an-email is a valid email address. Basic regex catches obvious garbage before it hits the API.
Batch when possible. Some APIs let you validate 10 items in one call instead of 10 separate calls. Same work, fewer credits.
Subscription vs Pay-As-You-Go
Two models you'll encounter:
Monthly subscription: Pay $X, get Y credits that reset each month. Unused credits usually don't roll over. Good if your usage is predictable.
Pay-as-you-go: Buy credit packs, use until empty. No expiration. Good for sporadic usage or testing.
Most providers (including APIVerve) offer both. Start with free tier, upgrade when you know your patterns.
What Happens at Zero
Three possibilities:
- Hard stop — Requests fail with 402 or 429 until you add credits
- Overage billing — Requests continue, you get billed extra
- Grace period — Brief buffer to prevent production outages
Know which one your provider uses. Set up monitoring accordingly.
Quick Math
Before committing, estimate your costs:
Users: 10,000/day
API calls per user: 3
Daily calls: 30,000
Monthly: ~900,000
At 1 credit per call = 900k credits/month
Then double it for safety. Real usage always exceeds estimates.
That's token billing. Simple concept, occasionally confusing terminology. The free tier is enough to build and test — grab your 50 credits and see how it actually works with real requests.
Originally published at APIVerve Blog
Top comments (0)