Skip to content
faker.tools
All 79

About

A mint for data that must never be real

Synthetic data has the same job as a specimen banknote. It has to carry every feature of the real thing — the right length, the right checksum, the right shape under a validator — while being worthless to anyone who takes it. faker.tools is 79 generators built to that standard, running entirely in your browser.

Everything comes from a seed

Each tool draws from a seeded pseudo-random generator, so the seed is the entire input. Type invoice-fixtures-v2and you get the same hundred invoices today, next month, and on your colleague’s laptop. That is what makes generated data safe to commit next to a test: the fixture regenerates rather than being stored.

The guilloché rosette on each page is cut from the same seed. It is a decorative device with a real job — showing you, at a glance, that a different seed means a different plate.

Structurally valid, deliberately worthless

Where a standard defines a checksum, it is computed rather than faked. Where a standard reserves a range for testing, that range is used:

  • 555-0100 to 555-0199— the North American Numbering Plan’s fiction block, never assigned to a subscriber.
  • 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 — RFC 5737 documentation ranges that cannot route.
  • example.com, example.org, example.net — reserved by RFC 2606 so mail can never be delivered.
  • Area 900–999 — permanently excluded from Social Security Number assignment.

Nothing is uploaded

There is no server-side generation, no account, and no log of what you produced. The data anonymizer, which is the one tool that takes your input rather than producing its own, does its pattern matching in JavaScript on your machine. You can disconnect the network and the whole site keeps working.

What it is not

It is not a source of production randomness. The generator is deterministic, which is exactly wrong for a password, a token or a session identifier — use crypto.randomUUID()and your platform’s CSPRNG for those. It is not a statistical sample of any population: distributions here are hand-shaped to look plausible, not sourced from a census. And a value that satisfies a checksum is not a value you may present as your own on a real form.

Questions

Does any of my data leave the browser?

No. Every generator runs as JavaScript on your machine. There is no API call, no analytics on the generated values, and the data anonymizer processes the text you paste entirely client-side. Turn the network off and the site keeps working.

What does the seed actually do?

It is the only input to the pseudo-random generator. The same seed always produces the same records, on any machine, forever — which is what lets you commit a fixture to a repository and regenerate it identically later.

Are the checksums real?

Yes, where a standard defines one. Card numbers satisfy Luhn, IBANs satisfy ISO 13616 mod-97, routing numbers satisfy the ABA 3-7-1 weighting, barcodes satisfy GTIN, and VINs satisfy ISO 3779. A number that fails at the first validator never exercises the code behind it.

Could a generated value collide with a real one?

For identifiers, no — those use ranges that are permanently unassigned. For names and company names, occasionally, because they are recombined from common words. Never present a generated value as belonging to a real person or business.

Can I use this for production data?

No. The generator is deterministic by design, which makes it perfect for fixtures and unsuitable for anything that needs unpredictability — passwords, tokens, session identifiers. Use your platform's cryptographic random source for those.