Skip to content
| Marketplace
Sign in
Visual Studio Code>Testing>Real Fake DataNew to Visual Studio Code? Get it now.
Real Fake Data

Real Fake Data

Karol Nowakowski

| (0) | Free
Insert realistic synthetic test data straight into your editor — valid national identifiers, VAT numbers, IBANs, addresses, companies and people across 27 EU countries, the United States and Canada.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Real Fake Data

Insert realistic synthetic test data straight into your editor — valid national identifiers, VAT numbers, IBANs, addresses, companies and people across 27 EU countries, the United States and Canada. Output looks real; nothing behind it is.

Backed by the Real Fake Data API. No account needed to start — requests run on the anonymous lane until you add a key.

Two ways to use it

A value at the cursor. Ctrl+Shift+P → Real Fake Data: Generate…, pick one of 326 generators, and the record lands where you were typing.

A whole dataset. Describe the shape your app expects in a .rfd.json file and get it back filled — nested objects, arrays, foreign keys that line up, dates in order.

Generating single values

Command What it does
Real Fake Data: Generate… Pick from every generator the API offers
Real Fake Data: Generate UUID A UUID, no picker
Real Fake Data: Generate Person A whole person record
Real Fake Data: Generate Email An email address
Real Fake Data: Generate Lorem Ipsum One paragraph
Real Fake Data: Regenerate Last Run the last call again for a different value

The generator list comes from the API itself, so a generator added there shows up here without an update. Regenerate Last is worth a keybinding — press it until a value reads well.

Insertion follows your cursors: with three cursors and three records, each cursor gets its own.

Presets

A preset pins a generator, its parameters, and the one field you want inserted.

// .vscode/settings.json
{
  "realFakeData.presets": {
    "plate": {
      "generator": "de/vehicle-registration",
      "params": { "district": "M" },
      "extract": "value"
    }
  }
}

Real Fake Data: Run Preset… → plate inserts M AB 1234 rather than the whole { value, type, district, state, city } record. Bind one to a key with its name as the argument:

{ "key": "ctrl+alt+c", "command": "realFakeData.runPreset", "args": "plate" }

Presets in .vscode/settings.json travel with the repo; presets in your user settings follow you everywhere. uuid, person, first-name, email and lorem ship built in — define one of those names yourself and yours wins.

Don't write them by hand: generate something, then run Real Fake Data: Save Last Generation as Preset…. It writes the entry and opens the file with the cursor on it.

Project-wide defaults

Same shape as a preset, but applied on every call — the picker, any preset, and Regenerate alike.

{
  "realFakeData.generatorDefaults": {
    "any.offering": { "params": { "countries": "pl,de,fr" } },
    "any.email": { "extract": "value" }
  }
}

"In this project, offerings only come from Poland, Germany and France, and I only ever want the email address itself." What a preset states explicitly still wins.

Seeding a whole dataset

Real Fake Data: New Schema File opens a working example. Save it as anything ending .rfd.json.

{
  "$generators": {
    "author": { "generator": "any.person-name" }
  },
  "id": "$generator.any.uuid.value",
  "firstName": "$alias.author.name",
  "lastName": "$alias.author.surname",
  "status": "active",
  "posts": {
    "$count": 2,
    "id": "$generator.any.nanoid.value",
    "publishedAt": "$date.-30d~+0d.day"
  }
}

You own the field names and the nesting. Anything starting with $ is filled in; everything else passes through untouched. firstName and lastName describe the same person because both read from one alias.

Press the ↻ button (or Real Fake Data: Reseed) and the data opens beside the file. Edit, reseed, look again.

Command What it does
Real Fake Data: Reseed Fill the schema and show the result beside it
Real Fake Data: Reseed Preview (count ≤ 2) Same, with every $count capped — check the shape cheaply
Real Fake Data: New Schema File Start from a working example
Real Fake Data: Compose Documentation Open the full grammar guide

The file holds the shape, not the request: dates work without configuring anything, and the whole document is sent as one call.

While you type

.rfd.json files get completion and validation from the live API:

  • $ offers the four sources; $generator. offers every generator id
  • a completed id plus . offers that generator's actual response fields
  • $alias. and $shared. offer the names your document declares
  • unknown ids, fields and aliases are underlined as you type, before you spend anything

Not spending more than you meant to

Compose is billed per draw, and nested counts multiply — $count: 100 around a node with $count: 50 is 5,000 records.

  • a $count over 100 is flagged as a warning
  • a reseed estimated over 1,000 draws asks first, naming the cost
  • Reseed Preview caps every count at 2, so checking the structure is nearly free

Your API key

Optional. Without one, requests use the anonymous lane and everything works — edge cases, invalid values, extreme encodings, compose. Add a key with Real Fake Data: Set API Key… to lift calls onto your own plan.

The key goes into VS Code's secret storage, not into settings.json, so it never lands in a committed dotfile.

One exception: custom-regex generation requires a free account, for an audit trail rather than for revenue.

Settings

Setting Purpose
realFakeData.presets Named generator calls, run on demand
realFakeData.generatorDefaults Standing settings applied to every call
realFakeData.baseUrl Point at a different API — a local one, say

Links

  • Compose grammar guide
  • API reference
  • real-fake-data.com

Also available as an MCP server for AI assistants and as Playwright fixtures.


This repository is auto-generated from a private upstream monorepo. Open issues here, but code changes are made upstream and re-synced — pull requests against this repo are applied upstream, not merged directly.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft