Generate deterministic fake API responses as JSON, NDJSON, CSV or TypeScript.
Tip: use samples, upload, copy, download, and send-to actions inside the workspace where available.
Mock Response Generator is a free, browser-based tool that helps you tidy up and standardize messy datasets. Generate deterministic fake API responses as JSON, NDJSON, CSV or TypeScript. It's built for speed and privacy: Everything runs locally in your browser — your data is never uploaded to a server. No sign-up, no installs, and no daily limits.
Clean obvious quality problems before analysis, imports, dashboards, or automation.
Review the preview, copy or download the result, and keep everything local in your browser.
API Response Inspector: Inspect a response's shape, status, caching and rate-limit signals.
Open toolOpenAPI Explorer: Browse an OpenAPI or Swagger spec — operations, schemas and ready-made curl.
Open toolThe most common REST wrapper. Output is a pure function of the seed — the same seed always produces the same payload, which is what makes these usable as test fixtures.
| Field name | Type | Null % | Sometimes absent | Sample | Remove |
|---|---|---|---|---|---|
| 3f8a1c2e-9b4d-4a11-8c2f-0e7d5a1b9c00 | |||||
| Ada Lovelace | |||||
| ada.lovelace@example.com | |||||
| admin | |||||
| true | |||||
| 2026-03-14T09:32:00Z |
Null rate emits an explicit null; sometimes absent omits the key entirely. Those are different cases and client code routinely handles one but not the other, so both are worth generating.
{
"data": [
{
"id": "79b20f1a-0db6-441c-bf1c-8129f4e2e9cb",
"name": "Tim Silva",
"email": "lars.goldberg@test.dev",
"role": "admin",
"active": false,
"created_at": "2025-10-25T13:38:20Z"
},
{
"id": "e615d824-bd20-4847-baf7-e4f26434efcc",
"name": "Yukihiro Ritchie",
"email": "dennis.goldberg@corp.example",
"role": "owner",
"active": false,
"created_at": "2025-02-28T08:01:33Z"
},
{
"id": "7eb2b980-5e7c-4dca-a221-a2938a365662",
"name": "Guido Goldberg",
"email": "adaeze.okonjo@test.dev",
"role": "viewer",
"active": true,
"created_at": "2025-03-07T08:29:37Z"
},
{
"id": "04ad079b-3ea1-4915-817b-a7caca261d49",
"name": "Bjarne Bhattacharya",
"email": "ritu.thompson@example.org",
"role": "editor",
"active": true,
"created_at": "2025-06-30T01:47:35Z"
},
{
"id": "d0777b6f-e24b-4c81-a91d-bcf274bb59bc",
"name": "Alan Liskov",
"email": "ada.johnson@corp.example",
"role": "admin",
"active": true,
"created_at": "2025-05-12T17:11:40Z"
}
]
}Deterministic by design. The generator is seeded, never random, so a payload can be committed as a fixture and reproduced exactly by anyone with the same seed. Changing the record count does not disturb the rows already generated.
Dates are relative to a fixed epoch (2026-01-01), not to today. If they moved with the clock, the same seed would produce different output tomorrow and the fixture would be worthless.
Everything is documentation-safe. IP addresses come from the RFC 5737 and RFC 3849 documentation ranges, card numbers are the published test values, and domains are all example.* — so nothing here can accidentally address a real host or a real account.
Generate the awkward cases deliberately. Nulls, absent keys and an error envelope are the paths that break clients in production, and they are exactly the ones absent from a hand-written happy-path fixture.