status enum Pin new, open, pending, resolved or closed lifecycle state.
Generate coherent support tickets with SLA outcomes, valid message participants, assignment filters and exact status/date masks.
Generated test data for fixtures and development
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
status | enum | allowed: new | open | pending | resolved | closed example: pending | Pin new, open, pending, resolved or closed lifecycle state. |
priority | enum | allowed: low | normal | high | urgent example: urgent | Pin priority and its first-response SLA target. |
channel | enum | allowed: email | chat | web example: chat | Pin email, chat or web origin. |
assigned | boolean | example: true | Require or forbid an assignee. False is valid only for new tickets. |
breached | boolean | example: false | Require the first-response SLA to be breached or met. |
minMessages | int | default: 2 allowed: 1 – 8 example: 3 | Minimum messages, inclusive. |
maxMessages | int | default: 6 allowed: 1 – 8 example: 7 | Maximum messages, inclusive; non-new states require at least 2. |
from | date | example: 2026-05-01 | Earliest creation time. With only from, to resolves 30 elapsed days later; with neither, defaults 30 UTC days before today. |
to | date | example: 2026-05-31T23:59:59.999Z | Latest creation time. With only to, from resolves 30 elapsed days earlier; with neither, defaults to today's UTC end. |
status enum Pin new, open, pending, resolved or closed lifecycle state.
priority enum Pin priority and its first-response SLA target.
channel enum Pin email, chat or web origin.
assigned boolean Require or forbid an assignee. False is valid only for new tickets.
breached boolean Require the first-response SLA to be breached or met.
minMessages int Minimum messages, inclusive.
maxMessages int Maximum messages, inclusive; non-new states require at least 2.
from date Earliest creation time. With only from, to resolves 30 elapsed days later; with neither, defaults 30 UTC days before today.
to date Latest creation time. With only to, from resolves 30 elapsed days earlier; with neither, defaults to today's UTC end.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: 10 allowed: 1 – 100 example: 3 | How many records to generate (1–100). |
seed | int | example: 42 | Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed). |
fields | list | example: id,subject | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: tags | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int How many records to generate (1–100).
seed int Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
id | string | Distinct fictional ticket ID. | tkt_4128abff3900_00 |
subject | string | Synthetic ticket subject. | Example checkout issue |
status | string | new | open | pending | resolved | closed. | pending |
priority | string | low | normal | high | urgent. | urgent |
channel | string | email | chat | web. | chat |
requester | object | Synthetic requester with id, name and reserved-domain email. | {"id":"usr_demo","name":"Avery Chen","email":"fixture@example.net"} |
assignee nullable | object | Fictional support agent, or null for unassigned new tickets. | {"id":"agt_demo","name":"Example Support Agent"} |
createdAt | string (ISO 8601) | Creation time inside from/to. | 2026-05-10T08:00:00.000Z |
updatedAt | string (ISO 8601) | Latest message or lifecycle transition. | 2026-05-10T09:00:00.000Z |
firstResponseAt nullable | string (ISO 8601) | First agent response for non-new tickets. | 2026-05-10T08:20:00.000Z |
resolvedAt nullable | string (ISO 8601) | Present for resolved and closed tickets. | null |
closedAt nullable | string (ISO 8601) | Present only for closed tickets. | null |
sla | object | First-response targetMinutes, dueAt and exact breached verdict. | {"type":"firstResponse","targetMinutes":60,"dueAt":"2026-05-10T09:00:00.000Z","breached":false} |
messages | object[] | One to eight chronological requester/agent messages. | [{"id":"msg_demo","senderId":"usr_demo","role":"requester","text":"Could you check this synthetic request?","createdAt":"2026-05-10T08:00:00.000Z"}] |
tags | string[] | One to three synthetic support tags. | ["example","account"] |
id string Distinct fictional ticket ID.
example: tkt_4128abff3900_00
subject string Synthetic ticket subject.
example: Example checkout issue
status string new | open | pending | resolved | closed.
example: pending
priority string low | normal | high | urgent.
example: urgent
channel string email | chat | web.
example: chat
requester object Synthetic requester with id, name and reserved-domain email.
example: {"id":"usr_demo","name":"Avery Chen","email":"fixture@example.net"}
assignee object nullable Fictional support agent, or null for unassigned new tickets.
example: {"id":"agt_demo","name":"Example Support Agent"}
createdAt string (ISO 8601) Creation time inside from/to.
example: 2026-05-10T08:00:00.000Z
updatedAt string (ISO 8601) Latest message or lifecycle transition.
example: 2026-05-10T09:00:00.000Z
firstResponseAt string (ISO 8601) nullable First agent response for non-new tickets.
example: 2026-05-10T08:20:00.000Z
resolvedAt string (ISO 8601) nullable Present for resolved and closed tickets.
example: null
closedAt string (ISO 8601) nullable Present only for closed tickets.
example: null
sla object First-response targetMinutes, dueAt and exact breached verdict.
example: {"type":"firstResponse","targetMinutes":60,"dueAt":"2026-05-10T09:00:00.000Z","breached":false}
messages object[] One to eight chronological requester/agent messages.
example: [{"id":"msg_demo","senderId":"usr_demo","role":"requester","text":"Could you check this synthetic request?","createdAt":"2026-05-10T08:00:00.000Z"}]
tags string[] One to three synthetic support tags.
example: ["example","account"]
/api/support-tickets?priority=urgent&channel=chat&breached=false&status=open&count=6&seed=42 {
"data": [
{
"id": "tkt_958016cfb6a5c85e_00",
"subject": "Example checkout issue",
"status": "open",
"priority": "urgent",
"channel": "chat",
"requester": {
"id": "usr_ac58cdd40fb158",
"name": "Kaylie Ziemann",
"email": "fixture-63c1d1cf@example.net"
},
"assignee": {
"id": "agt_f8728448a0b56b",
"name": "Example Support Agent"
},
"createdAt": "2026-07-19T23:52:47.748Z",
"updatedAt": "2026-07-20T01:55:47.748Z",
"firstResponseAt": "2026-07-20T00:00:47.748Z",
"resolvedAt": null,
"closedAt": null,
"sla": {
"type": "firstResponse",
"targetMinutes": 15,
"dueAt": "2026-07-20T00:07:47.748Z",
"breached": false
},
"messages": [
{
"id": "tkt_958016cfb6a5c85e_00_m1",
"senderId": "usr_ac58cdd40fb158",
"role": "requester",
"text": "I need help with this fictional account example.",
"createdAt": "2026-07-19T23:52:47.748Z"
},
{
"id": "tkt_958016cfb6a5c85e_00_m2",
"senderId": "agt_f8728448a0b56b",
"role": "agent",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/support-tickets?status=new&assigned=false&channel=email&count=8&seed=17 {
"data": [
{
"id": "tkt_5abf24f73252bc1d_00",
"subject": "Synthetic account question",
"status": "new",
"priority": "high",
"channel": "email",
"requester": {
"id": "usr_360556385bfa67",
"name": "Miss Mary Hilpert-Welch",
"email": "fixture-72197c4b@example.net"
},
"assignee": null,
"createdAt": "2026-07-10T04:33:41.102Z",
"updatedAt": "2026-07-10T05:06:41.102Z",
"firstResponseAt": null,
"resolvedAt": null,
"closedAt": null,
"sla": {
"type": "firstResponse",
"targetMinutes": 60,
"dueAt": "2026-07-10T05:33:41.102Z",
"breached": false
},
"messages": [
{
"id": "tkt_5abf24f73252bc1d_00_m1",
"senderId": "usr_360556385bfa67",
"role": "requester",
"text": "I need help with this fictional account example.",
"createdAt": "2026-07-10T04:33:41.102Z"
},
{
"id": "tkt_5abf24f73252bc1d_00_m2",
"senderId": "usr_360556385bfa67",
"role": "requester",
"text": "The demo workflow is not behaving as expected.",
"createdAt": "2026-07-10T04:37:46.055Z"
},
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/support-tickets?status=closed&breached=true&from=2026-05-01&to=2026-05-31&count=5&seed=8 {
"data": [
{
"id": "tkt_a0ad10ec49812586_00",
"subject": "Synthetic account question",
"status": "closed",
"priority": "normal",
"channel": "web",
"requester": {
"id": "usr_4a0ce7ed05d644",
"name": "Morris Ondricka",
"email": "fixture-18bc8e6c@example.net"
},
"assignee": {
"id": "agt_2ed0e0e37de56f",
"name": "Example Support Agent"
},
"createdAt": "2026-05-10T21:57:16.711Z",
"updatedAt": "2026-05-11T14:18:16.711Z",
"firstResponseAt": "2026-05-11T02:53:16.711Z",
"resolvedAt": "2026-05-11T07:37:16.711Z",
"closedAt": "2026-05-11T14:18:16.711Z",
"sla": {
"type": "firstResponse",
"targetMinutes": 240,
"dueAt": "2026-05-11T01:57:16.711Z",
"breached": true
},
"messages": [
{
"id": "tkt_a0ad10ec49812586_00_m1",
"senderId": "usr_4a0ce7ed05d644",
"role": "requester",
"text": "The demo workflow is not behaving as expected.",
"createdAt": "2026-05-10T21:57:16.711Z"
},
{
"id": "tkt_a0ad10ec49812586_00_m2",
"senderId": "agt_2ed0e0e37de56f",
"role": "agent",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} Generates fictional customer-support tickets for helpdesk inboxes, ticket details and SLA dashboards. Every message sender resolves to the top-level requester or assignee, messages are chronological, and each lifecycle state controls its nullable dates: new tickets have no response, resolved tickets have resolvedAt, and only closed tickets have closedAt.
The SLA is first-response based. Its target derives from priority, dueAt is exact, and breached is computed from the first agent response—or from the ticket's evaluated updatedAt while a new ticket remains unanswered. The breached filter therefore changes real timing, not a detached boolean.
Unassigned fixtures are deliberately limited to status=new; impossible combinations return 400. Names, messages and IDs are synthetic, requester email uses reserved example.net, and the model makes no helpdesk-vendor compatibility claim. Message arrays are capped at eight.
Yes. Responded tickets compare firstResponseAt with sla.dueAt; unanswered new tickets compare their evaluated updatedAt with the same deadline.
Yes. Every message sender is exactly the ticket requester or its fictional assignee, and unassigned new tickets contain requester messages only.
No. assigned=false is intentionally compatible only with status=new; impossible combinations return a clear 400 instead of inventing an agent response.
No. It is a compact vendor-neutral fixture model with synthetic identities and reserved-domain email.
Bounded fake direct, group and support conversations with valid participant references, chronological messages and exact unread counts.
Developer-productivity task fixtures with working status, priority, assignment, due-date and tag filters plus coherent subtasks and blockers.
Complete fake people — name, age-consistent birth date, email, phone, job and address — with working filters for gender, age range and email domain.
Deterministic SVG avatars from any seed string — identicons, initials and abstract shapes. Same seed, same avatar forever; plus ready-to-use avatar URL batches.