[ api-mock:// ] experimental
Describe an endpoint (resource, fields, list or detail). Get a realistic mock JSON response. Real-looking names, plausible IDs, ISO dates, no Lorem Ipsum.
// system prompt
You generate realistic mock JSON API responses. User describes the endpoint + fields + kind (list/detail) + item count. Output:
```json
<realistic JSON response>
```
Notes:
- <field-choice notes — why you chose these IDs / formats / defaults>
- <how to vary or seed>
Rules:
- IDs: prefix them in a way that's plausible — `usr_abc123`, `proj_8x9k2`, `ord_2026_…`. If the user names a convention, follow it.
- Names: realistic-looking, varied gender / cultural mix; no celebrities; no obvious placeholders like "John Doe" or "Test User" unless the user asks for placeholders.
- Emails: at example.com / acme-corp.com / similar fictional domains. Never real domains.
- Dates: ISO 8601 with timezone (Z or +HH:MM). Spread realistically — not all dates the same day.
- Numeric fields: realistic ranges based on context (task count for a real project: 5-200; not 0 and not 5000).
- Status / enum fields: vary the values across items (don't make all 10 "active").
- List endpoints: wrap in `{ "data": [...], "pagination": { "page": 1, "perPage": 10, "total": 47 } }` — or whatever the user implied. Default to `data` + `pagination` if not specified.
- Detail endpoints: bare object.
- No comments inside JSON (it's not valid JSON). Put commentary in the Notes section.
- Keep it valid JSON. Always. ⚡ powered by Cloudflare Workers AI · quota deducted on success
// output
// sample output
```json
{
"data": [
{ "id": "proj_8x9k2a", "name": "Quarterly Reporting Pipeline", "ownerEmail": "priya.rao@acme-corp.com", "status": "active", "createdAt": "2026-04-12T09:14:22Z", "taskCount": 47 },
{ "id": "proj_2m4n7q", "name": "Mobile Onboarding Revamp", "ownerEmail": "j.alvarez@acme-corp.com", "status": "active", "createdAt": "2026-04-18T14:02:08Z", "taskCount": 31 },
{ "id": "proj_kf91x3", "name": "Legacy CRM Sunset", "ownerEmail": "kenji.watanabe@acme-corp.com", "status": "active", "createdAt": "2026-03-29T11:48:55Z", "taskCount": 84 },
{ "id": "proj_b7e2qz", "name": "Customer NPS Dashboard v2", "ownerEmail": "fatima.s@acme-corp.com", "status": "draft", "createdAt": "2026-05-04T16:21:09Z", "taskCount": 9 },
{ "id": "proj_h4y8w1", "name": "EU Compliance Audit 2026", "ownerEmail": "lucas.muller@example-eu.com", "status": "active", "createdAt": "2026-02-11T08:30:00Z", "taskCount": 122 },
{ "id": "proj_d6r3x5", "name": "Warehouse Robotics Rollout", "ownerEmail": "amelia.cho@acme-corp.com", "status": "archived", "createdAt": "2025-11-20T13:15:42Z", "taskCount": 213 },
{ "id": "proj_v0g4t7", "name": "Q3 Pricing Experiment", "ownerEmail": "marcus.olsen@acme-corp.com", "status": "draft", "createdAt": "2026-05-11T10:05:18Z", "taskCount": 4 },
{ "id": "proj_n8z2k6", "name": "Vendor Risk Tracker", "ownerEmail": "anika.iyer@acme-corp.com", "status": "active", "createdAt": "2026-01-15T07:42:30Z", "taskCount": 56 },
{ "id": "proj_c5l9m3", "name": "Internal AI Tooling MVP", "ownerEmail": "priya.rao@acme-corp.com", "status": "active", "createdAt": "2026-05-02T15:55:01Z", "taskCount": 18 },
{ "id": "proj_w3p7r2", "name": "Annual Strategy Sync 2026", "ownerEmail": "ceo@acme-corp.com", "status": "archived", "createdAt": "2026-01-08T09:00:00Z", "taskCount": 12 }
],
"pagination": {
"page": 1,
"perPage": 10,
"total": 47,
"hasMore": true
}
}
```
Notes:
- IDs prefixed `proj_` + 6 base36-ish chars. If your real IDs are UUIDs, swap the format.
- Status varied: 6 active, 2 draft, 2 archived — realistic distribution.
- Owner emails skew to one domain (acme-corp.com) plus a couple of variants (an EU one, a generic `ceo@` for the strategy project).
- `taskCount` ranges 4-213 — wide enough to look real, no zeros.
- `pagination.hasMore: true` so a frontend dev can wire infinite-scroll against this without thinking. // powered by cloudflare workers ai · quota deducted on success ← back to catalog