Real Fake Data used to be sold the way most developer tools are sold: a free tier, a Pro plan above it, and a monthly charge to move between them. We have replaced all of it with prepaid credits — you buy a balance, it depletes as you use it, and it does not expire or renew. This is a note about why, because the reasoning says more about the product than the price list does.
The real problem was not the price. It was the tier boundary.
A tiered plan only works if the higher tier is worth buying. That sounds like a pricing question, but it is really a product question, and it resolves into an uncomfortable instruction to whoever is building the thing: find capabilities to withhold. Not features you have not built yet — features that exist, that work, that are sitting in the codebase, deliberately switched off for the people who did not pay enough.
We felt this immediately. Edge-case mode is arguably the most valuable thing here: flip a flag and every record comes from the awkward-but-valid corners of the format, which is where the bugs live. Under a tiered model, that is precisely the feature you put behind the Pro wall — it is the one people would upgrade for. Same for extreme mode. Same for compose, which seeds an entire nested database in one request.
So the pricing page starts writing itself, and what it says is: here is a list of things the product does, which you cannot do. A developer evaluating us on the free tier would be testing a deliberately weakened version and forming their opinion of the product from it. That is a strange thing to do to the person you are trying to convince.
Paying should buy volume, never capability. Every generator, every country, edge, extreme, invalid and compose work identically on every tier — including anonymous, with no account at all.
There is exactly one exception, and it is not about revenue: custom-regex requires a free account, so submissions are attributable. That is an audit trail, not a paywall — it costs nothing and never has.
The second reason: test data is bursty
The practical argument arrived alongside the principled one. Usage of a test-data API does not look like a subscription. It looks like this: you are building the seeding layer, and for four days you hammer it — thousands of records, batch after batch, tuning the shape. Then it works, it goes into CI, and for the next three weeks you draw a few hundred records a day. Then a new service needs fixtures and it spikes again.
A monthly fee charges you the same in the quiet weeks as in the loud one. Worse, it charges you in the month you did not open the project at all. Every subscription-billed developer tool has that one line item nobody can quite justify at renewal time — and being that line item is not a good position to occupy.
Prepaid credits track the actual shape of the work. Spend heavily during the seeding sprint, spend nothing for a month, and the balance simply sits there. Nothing expires. Nothing renews behind your back. There is no date in the calendar on which you are charged for a tool you did not touch.
What it actually costs
Usage is metered per request, in tokens. A call costs `1 + ceil(records/10)`, which means one record costs 2 tokens and a batch of a thousand costs 101 — nearly twenty times cheaper than making a thousand single calls, because the per-request overhead is charged once instead of a thousand times.
- 1 record — 2 tokens
- 10 records — 2 tokens
- 100 records — 11 tokens
- 1,000 records — 101 tokens (the maximum per call)
Composition is free. `/v1/de/company` draws a company name, a Handelsregisternummer, a USt-IdNr and a Wirtschafts-IdNr internally, and costs exactly what a single-field generator costs. The compose endpoint has no record count — it builds a document — so it is charged by the draws it actually makes, under the same rule. Literals, nesting, `$date` and a reused alias are all free: the car-workshop dataset in our previous post, two customers with their vehicles and repair orders and line items, costs a handful of tokens.
Every account gets 2,000 free tokens a month, and the anonymous lane — no key, no signup, straight from your terminal — gets 1,000, counted per IP address. That renews monthly whether or not you have ever paid.
Beyond that, the more you buy in one purchase, the cheaper each token gets: the marginal rate decays from $0.09 per thousand toward a floor of $0.01. In practice $9 buys around 103,000 tokens; $100 buys about 1.6 million, at roughly 30% less per token; $1,000 buys around 73 million. The curve restarts on each top-up rather than accumulating over your lifetime spend — anything else would owe retroactive credits on every previous purchase.
What we gave up
Predictable recurring revenue, mostly, which is the thing subscriptions are genuinely good at — and we are aware that is the number investors ask about. There is also a real cost to the customer we should name: a prepaid balance is one more thing to keep an eye on, where a subscription quietly renews and you never think about it. We would rather you thought about it. A balance you have to top up is a balance you are consciously choosing to spend, which is a healthier relationship than a charge you forgot you had.
The trade we made: a pricing page that describes what you pay instead of what you are locked out of, and a free tier that is the whole product rather than a demo of it. Try everything — edge, extreme, invalid, compose, all 29 countries — before you decide whether it is worth any money at all.