Learning & reference

Safe test data: the ranges reserved for exactly this

Standards bodies have set aside domains, IP addresses, phone numbers and identifiers that are guaranteed never to belong to anyone. Using them means your fixtures cannot email a stranger, dial a real phone or charge a real card, no matter where they end up. Here is the full set, and the places where no reserved range exists.

Why this matters more than it sounds

Test data does not stay in tests. It leaks into screenshots, demos, staging databases, support tickets and bug reports, and some of those get acted on by automated systems.

Fixtures outlive their purpose

A seeded staging database gets restored somewhere, a notification job runs against it, and the plausible address in row 4 receives real mail.

"Obviously fake" is a judgement call

A number that reads as invented to you is a working line to whoever owns it. Reserved ranges remove the judgement entirely.

Random valid is the worst case

Generating a Luhn-valid card number against a live issuer prefix produces something that can match a real card. Randomness does not make data safe; reservation does.

Domains and hostnames

UseReserved byNotes
example.com example.net example.orgRFC 2606 Reserved for documentation. They resolve and serve a real IANA page, so they are fine for examples but will produce live DNS and HTTP traffic if your tests actually call them.
.testRFC 2606, RFC 6761 The best default for test fixtures. Can never be registered and is not expected to resolve. Every address in the HEXAQA email corpus uses it.
.exampleRFC 2606, RFC 6761For documentation and examples.
.invalidRFC 2606, RFC 6761Guaranteed not to resolve. Use when you want a lookup to fail.
.localhostRFC 2606, RFC 6761Always resolves to the loopback address.
.localRFC 6762 Not a testing TLD. It is reserved for multicast DNS, so using it for test hostnames produces mDNS traffic and inconsistent resolution across platforms.

Prefer .test over example.com for anything a test might actually contact. The example.* domains are real, registered and served by IANA; a test suite that hits them in a loop is sending real traffic to someone else's server.

IP addresses and networks

RangeReserved byPurpose
192.0.2.0/24RFC 5737TEST-NET-1. Documentation and examples.
198.51.100.0/24RFC 5737TEST-NET-2. Use when you need a second distinct network.
203.0.113.0/24RFC 5737TEST-NET-3. A third.
2001:db8::/32RFC 3849The IPv6 documentation prefix.
198.18.0.0/15RFC 2544Benchmarking. Not for documentation, and it can route inside some networks.
100.64.0.0/10RFC 6598Carrier-grade NAT. Not a test range; real ISPs use it.
00:00:5E:00:53:00RFC 7042MAC addresses reserved for documentation, …53:00 through …53:FF.
64496–64511RFC 5398Autonomous System numbers for documentation.

Phone numbers

RegionReservedNotes
North America555-0100 to 555-0199 The only 555 numbers actually reserved for fictional use. Other 555 numbers are assignable and some are assigned, so 555-1234 is not safe.
United Kingdom07700 900000–900999 Ofcom drama range for mobiles. Landline equivalents exist per area, for example 0113 496 0000–0999 and 020 7946 0000–0999.
Australia(02) 5550 xxxx ACMA reserves blocks per area code for film and TV use.
Anywhere elseCheck the regulator Most national regulators reserve a drama or fiction block. If you cannot find one, a number that cannot dial at all, such as one with an invalid length, is safer than a plausible one.

Payment card numbers

These are published by the card networks and payment processors as test values. They pass the Luhn check and are recognised as test data by processors in sandbox mode.

NetworkNumberNotes
Visa4111 1111 1111 1111The most widely published test number.
Visa (13 digit)4222 2222 2222 2Shorter form, for length handling.
Mastercard5555 5555 5555 4444
Mastercard (2-series)2223 0031 2200 3222The 2221–2720 range many validators still reject.
American Express3782 822463 1000515 digits, 4-digit CVV. Breaks anything assuming 16 and 3.
Discover6011 1111 1111 1117
JCB3530 1113 3330 0000

Never generate your own. A Luhn check digit is trivial to compute, so a generated number on a live issuer prefix is indistinguishable from a real card and may be one. Use the published values, and your processor's own sandbox list for cases like declines and expiries.

Identifiers and secrets

UUIDs

The nil UUID 00000000-0000-0000-0000-000000000000 and the max UUID ffffffff-ffff-ffff-ffff-ffffffffffff are both defined in RFC 9562 and safe as sentinels. Any random v4 is effectively safe too.

Antivirus and spam

EICAR is a 68-byte string every scanner must flag as if it were malware; GTUBE is its spam-filter equivalent. Both are harmless and exist purely to prove detection works.

API keys and tokens

No reserved format exists. Use an obviously-fake prefix you control and a clearly non-random body, so a leaked fixture cannot be mistaken for a live credential by a secret scanner.

Private keys

Generate a throwaway key rather than copying one from a tutorial. Keys pasted into documentation get indexed, and anything using one is compromised by definition.

Where no reserved range exists

These are the ones people assume are covered and are not. Treat any value you invent here as potentially belonging to somebody real.

DataSituationWhat to do instead
ISBNNo reserved block. A check-digit-valid ISBN you invent may identify a real book. Use a prefix your organisation registered, or label the field synthetic and do not look it up.
IBAN / bank accountNo reserved range. TEST as a bank code is a convention, not a standard. Use your bank's published sandbox values.
National ID numbersMost countries reserve nothing, and some make misuse an offence. Use structurally invalid values, or a documented test range where the government publishes one.
Postal addressesNo reserved addresses exist anywhere. Invent a street name and use a reserved-looking town. Never use a real address you found.
NamesAny plausible name belongs to thousands of real people. Unavoidable, and usually harmless on its own. It stops being harmless when combined with a real-looking address or phone number.
Company namesReal trademarks are not test data, however famous. Compose from neutral words, for example Example Systems or Sandbox Labs.

What this site uses

The same rules, applied to our own fixtures, so you can see them working.

WhereWhat we use
Every email address in the email corpusA subdomain of example.test. None of the 19 messages can be delivered anywhere.
The fake test-data generatorReserved phone ranges, published card test numbers only, and synthetic company and place names.
The vCard fixtureexample.test address and a 555-01xx number.
Security fixturesEICAR and GTUBE, served from a separate hostname so a scanner blocking them cannot affect the rest of the site.

Names and places are the honest exception. Our generator composes names and towns that are not real trademarks or real cities, but no reserved range exists for either, so a coincidence is always possible. The page says so rather than claiming more than it can.

Keep going

Fake data generator Email fixtures → QA test strings →