Mock Data Generator

Build a schema field by field, generate up to 500 rows in ten languages, and take them away as JSON, CSV, SQL inserts or NDJSON. No sign-up, and the same thing is available as an API.

Schema

11 fields · max 25
  • 3f6f9a5e-0f3a-…

  • Ada

  • Lovelace

  • alovelace

  • +1 415 555 0132

  • London

  • GB

  • true

  • 2024-03-01T10:00:00

Start from

Output

Same thing, as an API

curl -X POST 'https://akifakkaya.com/api/v1/random/schema?format=json' \
  -H 'Content-Type: application/json' \
  -d '{"count":10,"locale":"en_US","fields":[{"name":"id","type":"uuid","options":{}},{"name":"first_name","type":"first_name","options":{}},{"name":"last_name","type":"last_name","options":{}},{"name":"email","type":"email","options":{}},{"name":"username","type":"username","options":{}},{"name":"phone","type":"phone","options":{}},{"name":"city","type":"city","options":{}},{"name":"country_code","type":"country_code","options":{}},{"name":"role","type":"enum","options":{"values":["admin","editor","viewer"]}},{"name":"is_active","type":"bool","options":{}},{"name":"created_at","type":"datetime","options":{}}]}'

Free, no key, 120 requests a minute. Full endpoint reference

Preview

Rows will appear here.

Export

Format

Generate some rows to export them.

The rows exactly as the API returned them.

Why generate data instead of copying it

A test fixture built from a production dump is a liability: it carries real people's names and addresses into environments that were never designed to hold them, and it has to be scrubbed again every time it is refreshed. Generated rows have neither problem, and they can be shaped to hit the cases a real sample happens not to contain.

The schema builder is the point. Most generators hand you a fixed record shape and leave you to reshape it; here the field names are yours, so the JSON keys match your model and the SQL columns match your table. Set a sequence to start at 1000, constrain a price to a range, give an enum the four statuses your state machine actually has, and the output drops straight into a seed script.

Language matters more than it looks. Ten locales are supported, and picking one changes the substance rather than the labels — Turkish names with Turkish addresses and phone formats, German postcodes that are five digits. If your app has ever broken on a name with a diacritic or an address that does not fit an English template, that is the switch to test with.

Questions

What can I export?
JSON, CSV, NDJSON, or SQL — a CREATE TABLE inferred from the generated values followed by one multi-row INSERT. Every format is rendered by the API, so what you copy is exactly what the endpoint returns.
How many rows can I generate at once?
Up to 500 per request, across up to 25 fields. For more than that, call the same endpoint in a loop — it is free and needs no key.
Is the data realistic?
It is locale-aware: pick a language and names, addresses and phone numbers follow that locale's conventions rather than being English text with a different flag on it. Credit card numbers come from the standard test ranges and cannot be charged.
Can I use this data in a demo or a test suite?
Yes. It is generated, not sampled from anyone's real records, so there is no personal data in it and nothing to anonymise. Every response carries an X-Data-Is-Fake header for the same reason.
Is there an API?
This page is a front end for one: POST /api/v1/random/schema takes the same field list and returns the same four formats. The curl for your current schema is shown on the page.

Related