Looks real. Is 100% synthetic.

Real Fake Data

A developer-friendly API for realistic but valid synthetic test data — almost any data with correct checksums, edge cases and validation variants. Safe for staging, demos, seeding, and tests.

$ curl https://realfakedata-api.onrender.com/v1/email?domainCategory=regional

GET /v1/email?domainCategory=regional200 OK
{
  "data": {
    "value": "anna.wojcik@wp.pl",
    "localPart": "anna.wojcik",
    "domain": "wp.pl",
    "pattern": "first.last",
    "plusTag": null
  },
  "meta": {
    "generatorId": "any.email",
    "pattern": "first.last",
    "domain": "wp.pl"
  }
}

Every field is valid by format — and tied to no real person.

Test data you can actually trust

Faker libraries produce garbage that fails validation. Real Fake Data produces data that is correct by format and safe by design.

Valid checksums

National IDs and tax numbers pass real checksum validation, so they flow through your validators exactly like production data.

Real-world geography

Addresses are built from actual cities, streets, and postal-code prefixes — believable in any demo or screenshot.

Edge cases on demand

Flip a flag and a generator returns only edge cases — boundary values, unusual-but-valid records, and deliberately invalid checksums — so you can test how your product handles the hard inputs.

Deterministic & seedable

Pass a seed and get the same record every time. Reproducible fixtures for tests and stable demo environments.

Drop it into your stack

Pull valid records over REST or straight from your tests — no glue code required.

REST API + OpenAPI docs

A clean REST interface with a full OpenAPI spec, typed clients, and predictable JSON responses.

Playwright addon

Skip the HTTP calls — drop in the Playwright addon and pull seeded, valid records straight into your tests with one line per record.

How it works

Three steps from zero to a fully seeded test environment.

  1. 01

    No API key required

    Start generating right away — the free tier is rate-limited per IP address. Add an API key only when you need higher limits on a paid plan.

  2. 02

    Pick how you connect

    Call the REST endpoint directly, or drop in the Playwright addon for one-line fixtures. More interconnectors are on the way.

  3. 03

    Seed your app

    Drop the JSON into fixtures, factories, or demo databases. Everything validates — nothing is real.

Connect via
example.ts
const response = await fetch(
  "https://realfakedata-api.onrender.com/v1/email?domainCategory=regional"
);
const { data } = await response.json();

console.log(data.value); // "anna.wojcik@wp.pl"

Ready to generate?

Try it live in the playground — no signup required.

Playwright addon

Realistic fixtures, one line per record

Drop the @przeslijmi/real-fake-data-playwright fixture into your tests and pull valid people, addresses, national IDs, and IBANs with a single call. Seeded by default — a failing test replays the exact same data, so repros are trivial.

Explore the Playwright addon
example.spec.ts
import { test, expect } from '@przeslijmi/real-fake-data-playwright';

test.use({ realFakeData: { baseUrl } });

test('registers a customer', async ({ page, fakeData }) => {
  const person = await fakeData.plPerson({ sex: 'f' });

  await page.getByLabel('PESEL').fill(person.pesel);
  await page.getByLabel('Surname').fill(person.surname);
});