API mock data generator
Fake JSON records from a field list for testing an API or front end.
FreeRuns in your browserNo signupUpdated 2026-11-05
Field types
id · uuid · firstName · lastName · fullName · email · phone · company · street · city · country · postcode · url · imageUrl · word · sentence · paragraph · boolean · int(min, max) · float(min, max, decimals) · enum(a, b, c) · date · datetime · null
All data is made up. Emails use example.com and phone numbers use the 555-01xx range set aside for fiction.
Records
10
13 fields each
Size
4.0 KB
of formatted output
[
{
"id": 1,
"uuid": "e83fe63d-c6dc-47f8-8e34-b93e89f3a05f",
"name": "Anna Schmidt",
"email": "anna.schmidt1@example.com",
"phone": "+1 879 555 0197",
"company": "Blue Logistics LLC",
"address": {
"city": "Abu Dhabi",
"country": "United Arab Emirates"
},
"plan": "team",
"seats": 22,
"rating": 3.1,
"active": false,
"createdAt": "2024-09-19T20:51:54Z"
},
{
"id": 2,
"uuid": "3b0c1fa3-fe98-4604-b587-74d967f6c213",
"name": "James Wilson",
"email": "james.wilson2@example.com",
"phone": "+1 542 555 0123",
"company": "North Labs FZ-LLC",
"address": {
"city": "Sydney",
"country": "Australia"
},
"plan": "free",
"seats": 35,
"rating": 1.7,
"active": true,
"createdAt": "2026-08-02T07:51:39Z"
},
{
"id": 3,
"uuid": "ee805e55-c9c4-427f-a89c-dd9c643d75f5",
"name": "Wei Khan",
"email": "wei.khan3@example.com",
"phone": "+1 261 555 0145",
"company": "Maple Health Inc",
"address": {
"city": "Zurich",
"country": "Switzerland"
},
"plan": "free",
"seats": 7,
"rating": 3.3,
"active": false,
"createdAt": "2024-07-08T13:56:21Z"
},
{
"id": 4,
"uuid": "0a5e35c6-4ab6-4394-9bdf-827b6ac9bb83",
"name": "Grace Al Mansoori",
"email": "grace.almansoori4@example.com",
"phone": "+1 764 555 0133",
"company": "Blue Health Ltd",
"address": {
"city": "Manchester",
"country": "United Kingdom"
},
"plan": "team",
"seats": 33,
"rating": 2.1,
"active": false,
"createdAt": "2025-03-21T05:07:27Z"
},
{
"id": 5,
"uuid": "40478e21-61a2-464d-b46d-6fba1e8f8f8e",
"name": "Daniel Khan",
"email": "daniel.khan5@example.com",
"phone": "+1 938 555 0153",
"company": "Harbour Traders GmbH",
"address": {
"city": "London",
"country": "United Kingdom"
},
"plan": "pro",
"seats": 32,
"rating": 1.8,
"active": true,
"createdAt": "2024-02-13T01:59:58Z"
},
{
"id": 6,
"uuid": "9e350c31-58ac-4b75-b0f2-ed69b14d5921",
"name": "Aisha Rahman",
"email": "aisha.rahman6@example.com",
"phone": "+1 769 555 0118",
"company": "Harbour Clinic FZ-LLC",
"address": {
"city": "Toronto",
"country": "Canada"
},
"plan": "pro",
"seats": 15,
"rating": 3,
"active": true,
"createdAt": "2026-10-26T08:16:19Z"
},
{
"id": 7,
"uuid": "7f7b16ff-451e-4457-b4e8-aea88591c39f",
"name": "Daniel Nair",
"email": "daniel.nair7@example.com",
"phone": "+1 513 555 0147",
"company": "Cedar Clinic LLC",
"address": {
"city": "Dubai",
"country": "United Arab Emirates"
},
"plan": "team",
"seats": 24,
"rating": 1.8,
"active": true,
"createdAt": "2024-02-06T07:41:55Z"
},
{
"id": 8,
"uuid": "06f4be2c-db8f-4f6c-bc98-e9a30066b40a",
"name": "Noor Brown",
"email": "noor.brown8@example.com",
"phone": "+1 363 555 0119",
"company": "Summit Energy Ltd",
"address": {
"city": "Berlin",
"country": "Germany"
},
"plan": "pro",
"seats": 22,
"rating": 1.4,
"active": false,
"createdAt": "2026-05-04T21:25:05Z"
},
{
"id": 9,
"uuid": "461c3976-1e3a-4b16-a1eb-018e354020b2",
"name": "Fatima Rahman",
"email": "fatima.rahman9@example.com",
"phone": "+1 705 555 0193",
"company": "Summit Traders FZ-LLC",
"address": {
"city": "Mumbai",
"country": "India"
},
"plan": "team",
"seats": 16,
"rating": 3.6,
"active": true,
"createdAt": "2026-01-26T23:34:26Z"
},
{
"id": 10,
"uuid": "cd964e86-1e87-4a83-b7f0-2395b5afa157",
"name": "Liam Al Mansoori",
"email": "liam.almansoori10@example.com",
"phone": "+1 911 555 0152",
"company": "Orbit Systems Ltd",
"address": {
"city": "Toronto",
"country": "Canada"
},
"plan": "free",
"seats": 18,
"rating": 3.8,
"active": false,
"createdAt": "2026-02-09T14:20:19Z"
}
]
Serve it with json-server, a Next.js route handler or Mock Service Worker.
export interface Customer {
id: number;
uuid: string;
name: string;
email: string;
phone: string;
company: string;
address: {
city: string;
country: string;
};
plan: string;
seats: number;
rating: number;
active: boolean;
createdAt: string;
}About this tool
How it works and how to read the result.
Need this done for you?
APIs & integrations
Connect your website, apps and business tools.
See the serviceWhat it does
An API mock data generator makes realistic fake records so you can build and test a front end before the real API exists, or without touching production data. You describe each field on its own line as name: type, and the tool produces up to 1,000 JSON records with names, emails, phone numbers, companies, cities, numbers, dates, booleans and values picked from a list. Dots in a field name create nested objects. Alongside the data you get a TypeScript interface that matches one record, so the types and the mock stay in step.
How to use it
- Edit the field list. Each line is a name, a colon and a type, for example email: email or seats: int(1, 50).
- Use enum(a, b, c) for a field with fixed values, and float(min, max, decimals) for numbers with decimals.
- Set how many records you need.
- Pick the output: a plain array, an object with data and pagination meta, or NDJSON for streaming and bulk imports.
- Copy or download the file, and copy the TypeScript type into your code.
How to read the result
With the defaults, seed 42 produces ten records of 13 fields each, about 4 KB of formatted JSON. The first record is id 1, Anna Schmidt, anna.schmidt1@example.com, a phone number ending 555 0197, Blue Logistics LLC, with an address object holding Abu Dhabi and United Arab Emirates, plan "team", 22 seats, a rating of 3.1, active false and a createdAt timestamp in 2024.
The TypeScript panel shows the same shape as an interface named Customer: id is a number, address is a nested object with city and country, and active is a boolean. Fields typed as enum come out as string; narrow them by hand to a union such as "free" | "pro" | "team" if your code relies on the exact values.
If a line cannot be read, an amber "Skipped" note names it and the rest of the output still generates. Dates fall between January 2024 and October 2026, so the output never depends on today's date.
To check or tidy a real API response, use the JSON formatter, and to type one you already have, the JSON to TypeScript converter. When the real integration is ready to build, see our API integrations service.
Questions
Frequently asked.
Is any of the generated data real?
No. Names, companies and cities are drawn from short built-in lists and combined at random. Every email uses example.com, a domain reserved for documentation, and every phone number uses the 555-01xx range set aside for fiction in North America, so nothing in the output can reach a real person.
Why does the data stay the same when I reload?
The generator uses a seeded random number generator. The same seed and the same field list always give the same records, which keeps screenshots, tests and bug reports reproducible. Press New next to the seed, or type any other value, for a different set.
How do I turn the output into a working API?
Save the file and serve it. json-server can expose a JSON file as a REST API with one command. In Next.js, return the array from a route handler. In a browser test, Mock Service Worker can intercept fetch calls and reply with the records. All three keep the real API out of the loop.
Your next move
Like what you see? Tell us about it.
A process that takes too long, a website that undersells you, or an idea ready to take shape. Tell us where you are and we will suggest a useful next step.
India · Working with clients worldwide