sections int Number of H2 sections after the intro. Each has 1–2 paragraphs plus its share of the enabled features.
Multi-section Markdown documents where every feature flag is a hard guarantee — code blocks, tables, lists, links and images appear when on, never when off.
Generated test data for fixtures and development
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
sections | int | default: 3 allowed: 1 – 10 example: 4 | Number of H2 sections after the intro. Each has 1–2 paragraphs plus its share of the enabled features. |
codeBlocks | boolean | default: true example: true | Include fenced code blocks tagged js, ts, python or bash. true ⇒ at least one per document; false ⇒ no backticks anywhere. |
tables | boolean | default: true example: true | Include 3-column pipe tables (header + separator + 3 rows). true ⇒ at least one per document; false ⇒ no table syntax anywhere. |
lists | boolean | default: true example: true | Include unordered lists of 3–5 dash items. true ⇒ at least one per document; false ⇒ no list syntax anywhere. |
links | boolean | default: true example: true | Weave inline [text](https://example.com/…) links into paragraphs. true ⇒ at least one per document; false ⇒ no link syntax anywhere. |
images | boolean | default: false example: true | Include a  image from this platform's placeholder API. true ⇒ at least one per document; false (default) ⇒ no image syntax. |
sections int Number of H2 sections after the intro. Each has 1–2 paragraphs plus its share of the enabled features.
codeBlocks boolean Include fenced code blocks tagged js, ts, python or bash. true ⇒ at least one per document; false ⇒ no backticks anywhere.
tables boolean Include 3-column pipe tables (header + separator + 3 rows). true ⇒ at least one per document; false ⇒ no table syntax anywhere.
lists boolean Include unordered lists of 3–5 dash items. true ⇒ at least one per document; false ⇒ no list syntax anywhere.
links boolean Weave inline [text](https://example.com/…) links into paragraphs. true ⇒ at least one per document; false ⇒ no link syntax anywhere.
images boolean Include a  image from this platform's placeholder API. true ⇒ at least one per document; false (default) ⇒ no image syntax.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: 1 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: markdown,wordCount | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: sections | 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 |
|---|---|---|---|
markdown | string (Markdown) | The complete document: H1 title, intro paragraph, then the H2 sections with the enabled features distributed among them. | # Practical Cache Strategies Veniam consequatur voluptas nihil tempora. ## Getting Started Quia sequi rerum aut facilis. See [the deploy guide](https://example.com/docs/deploy) for the full reference. - Voluptas nihil tempora - Quia sequi rerum - Aut facilis numquam |
wordCount | integer | Whitespace-separated token count of the exact markdown string (syntax included). | 214 |
sections | integer | Number of H2 sections in the document — echoes the sections parameter. | 3 |
markdown string (Markdown) The complete document: H1 title, intro paragraph, then the H2 sections with the enabled features distributed among them.
example: # Practical Cache Strategies Veniam consequatur voluptas nihil tempora. ## Getting Started Quia sequi rerum aut facilis. See [the deploy guide](https://example.com/docs/deploy) for the full reference. - Voluptas nihil tempora - Quia sequi rerum - Aut facilis numquam
wordCount integer Whitespace-separated token count of the exact markdown string (syntax included).
example: 214
sections integer Number of H2 sections in the document — echoes the sections parameter.
example: 3
/api/markdown?seed=42 {
"data": [
{
"markdown": "# Sulum Laborum Comitatus Vulgo Cetera\n\nAcer aegre mollitia terreo. Tener atrocitas vitae aegrus viscus aliquid talus certe dapifer audacia.\n\n## Tristis truculenter pax curis\n\nA peior cohors minima defessus delectus voluptatibus aer synagoga. Usque curia aranea cunctatio verumtamen vitiosus decretum. Tenax admoneo vitium trans earum stabilis. Compare the notes in [valde sufficio vilicus](https://example.com/aqua/aliquam) before upgrading.\n\n| Name | Value | Unit |\n| --- | --- | --- |\n| bis | antea | spes repellat |\n| arma | annus | esse fuga |\n| contego | beatus | pectus damno |\n\n- Comes caecus debilito depromo non\n- Sublime agnitio\n- Commodo ascisco deporto\n- Atrox coniecto\n- Corroboro thymbra\n\nIpsum capio demergo aperio adulescens basium animi anser vester charisma. Ab perferendis tibi cupressus odit ducimus.\n\n## Canonicus damnatio\n\nDecor auctus tonsor statua occaecati cur cultellus quos suggero. Talio comis deserunt delibero assumenda coaegresco aegrotatio iusto acquiro. Adeptio thalassinus patior uberrime.\n\n```ts\nexport interface VoraxOptions {\n retries: number;\n timeoutMs: number;\n verbose: boolean;\n}\n\nexport function createVorax(overrides: Partial<VoraxOptions>): VoraxOptions {\n return { retries: 3, timeoutMs: 5000, verbose: false, ...overrides };\n}\n```\n\n- Voluptate curto attero\n- Varietas quibusdam laboriosam accusator adficio creber\n- Crastinus correptius velociter\n- Volaticus tabgo\n- Cur condico vomer viduo comminor aeternus\n\n## Vulgus modi\n\nQuasi iure tenax cernuus adulescens possimus. Stips demens curiositas sufficio somniculosus aequitas. Tersus vociferor absorbeo tamen. This builds on the approach described in [adhuc alter](https://example.com/ceno/alo).\n\n| Notes | Type | Stage |\n| --- | --- | --- |\n| appello | adsidue | copia ipsum |\n| exercitationem | cotidie | patruus ratione |\n| tondeo | argumentum | baiulus adflicto |\n\nVoluptatem vomer non enim depono solio atavus ventosus thermae. Viriliter quis tibi. Peior temporibus alienus pecus cito consectetur.",
"wordCount": 293,
"sections": 3
}
],
"meta": {
"endpoint": "markdown",
"count": 1,
"seed": 42,
"params": {
"sections": 3,
"codeBlocks": true,
"tables": true,
"lists": true,
"links": true,
"images": false
},
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} /api/markdown?codeBlocks=false&tables=false&lists=false&links=false§ions=2 {
"data": [
{
"markdown": "# Sulum Laborum Comitatus Vulgo Cetera\n\nAcer aegre mollitia terreo. Tener atrocitas vitae aegrus viscus aliquid talus certe dapifer audacia.\n\n## Tristis truculenter pax curis\n\nA peior cohors minima defessus delectus voluptatibus aer synagoga. Usque curia aranea cunctatio verumtamen vitiosus decretum. Tenax admoneo vitium trans earum stabilis.\n\nSufficio vilicus aqua aliquam calco vinculum ipsum capio demergo aperio. Basium animi anser. Charisma crastinus ab perferendis tibi cupressus odit ducimus solutio comes. Debilito depromo non asperiores.\n\n## Agnitio coadunatio commodo ascisco\n\nAtrox coniecto aggredior. Thymbra bis antea spes repellat. Annus esse fuga contego.",
"wordCount": 91,
"sections": 2
}
],
"meta": {
"endpoint": "markdown",
"count": 1,
"seed": 42,
"params": {
"sections": 2,
"codeBlocks": false,
"tables": false,
"lists": false,
"links": false,
"images": false
},
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} /api/markdown?count=5&images=true§ions=4&seed=7 {
"data": [
{
"markdown": "# Surgo Amoveo Timidus Textus Velit Quidem\n\nUrbs perspiciatis odio autus. Subnecto alveus solutio soluta voluptate trans contabesco uxor. Vigor voluptatibus trepide convoco sopor tremo alo armarium stabilis.\n\n## Beatae demonstro\n\nRecusandae amet quod placeat. Timidus audax vilitas aperiam textor exercitationem pecus cresco supra. Aeger caveo cultellus xiphias tempore teres teres.\n\n- Confero arcus civitas\n- Mollitia admoveo cogito vis sopor\n- Amaritudo illo cibo\n- Admiratio cui tero ascit adsidue decretum\n- Benigne tabesco videlicet absque\n\nNesciunt ultio considero admoneo. Caelum beatae testimonium laborum laudantium concedo ulciscor contra. Nesciunt audax consuasor vito nulla voluntarius crustulum claudeo. This builds on the approach described in [deleniti vinculum antea](https://example.com/conduco/tricesimus).\n\n## Vulgivagus sollers cumque ara\n\nClibanus avaritia attero virtus arcesso conculco impedit confugo suadeo velum. Spiritus tutis adipiscor abbas. Adhuc attero corrumpo teres. Eaque ambitus suppono sonitus harum convoco voveo conatus molestias perferendis.\n\n| Value | Notes | Unit |\n| --- | --- | --- |\n| quae | tenetur | anser vulariter |\n| totam | absum | adversus suffragium |\n| assentator | aestivus | cerno vomer |\n\n## Aestivus in\n\nAdsidue vado conculco quae convoco ter vigor ducimus. Pel benigne cotidie crepusculum adaugeo reprehenderit audacia vomer.\n\n- Alioqui cavus\n- Uredo aeneus adamo\n- Antea verus adversus cruentus\n- Aro ea versus sumo\n\n```ts\nexport interface AnimiOptions {\n retries: number;\n timeoutMs: number;\n verbose: boolean;\n}\n\nexport function createAnimi(overrides: Partial<AnimiOptions>): AnimiOptions {\n return { retries: 3, timeoutMs: 5000, verbose: false, ...overrides };\n}\n```\n\n## Praesentium confugo custodia\n\nVociferor vel tego conduco. Teres comes confugo. Traho omnis auctus debeo admoveo vigilo stipes toties accommodo facere. A complete walkthrough is available at [vergo similique](https://example.com/administratio/texo).\n\n\n\n| Stage | Value | Name |\n| --- | --- | --- |\n| culpo | capillus | appono adsidue |\n| quisquam | umerus | aqua conatus |\n| illo | tabella | amet tubineus |\n\n- Caries sono\n- Accedo adimpleo\n- Adulescens cuppedia vulnero",
"wordCount": 325,
"sections": 4
},
{
"markdown": "# Dolorum Deputo Porro Vae Totidem\n\nTimor aperiam verbum calamitas esse saepe. Nostrum aranea subiungo in calcar vetus dedecor subito sed.\n\n## Comminor acer inflammatio adicio\n\nSum id ciminatio comptus calcar contabesco suffragium conculco. Patruus cultura certus tenax creber uredo vicinus. Candidus aperio ter tenuis valeo denego nemo reprehenderit. Veritas communis benigne cilicium vulgus viriliter adduco corpus carcer bardus.\n\n\n\n## Volup sollicito sulum damno conor\n\nStrues angelus mollitia comburo tonsor. Beneficium argentum aegrus. Depromo cinis mollitia vesper ventito ambitus debeo cuppedia. Urbs spiritus culpo bibo amiculum vivo asper.\n\n- Umbra vociferor\n- Tepidus auxilium\n- Astrum tandem demulceo derideo absum abundans\n- Thema bene vere\n- Ager cogo crustulum beatae arcesso\n\n## Praesentium terror cattus tandem bos\n\nCorporis patior deleniti. Adeo animus unde vos laudantium illum cubicularis nihil maxime unde. Cenaculum earum eos aestivus saepe ab vespillo corrumpo subvenio. Tum acceptus curo deludo rerum avarus.\n\n| Description | Type | Field |\n| --- | --- | --- |\n| cura | curia | fuga tubineus |\n| callide | aggredior | volaticus universe |\n| creber | spoliatio | tremo aggredior |\n\n```python\nimport json\n\ndef load_animus(path):\n with open(path, encoding=\"utf-8\") as handle:\n return json.load(handle)\n\nprint(load_animus(\"animus.json\"))\n```\n\nVobis acies commodo. Summisse crur callide circumvenio acies. Patruus coniuratio eum illo spoliatio peccatus. Advenio balbus audio vis cognatus. A complete walkthrough is available at [curriculum totidem vapulus](https://example.com/culpo/cetera).\n\n## Qui facilis\n\nCoepi benigne vito. Absum vos facere aequus veritas. Advenio repudiandae curia thymbra censura. Compare the notes in [complectus patrocinor](https://example.com/stipes/casso) before upgrading.\n\n- Tamisium atqui aer decipio antiquus\n- Alius pecto accusator virtus\n- Alius sulum ea qui venio\n- Apostolus cubicularis claustrum\n- Auditor vere ullus",
"wordCount": 278,
"sections": 4
},
{
"markdown": "# Praesentium Esse Nam Absconditus Aequitas Atrocitas\n\nTotidem sumptus terga alo ambulo. Vulticulus patrocinor comparo dolorem addo pax tubineus considero comparo. Assentator nesciunt cicuta desparatus causa commodi ancilla volo curiositas esse. Uter a magnam.\n\n## Avarus laborum\n\nAvarus esse arbor canto viridis credo consuasor laborum cursus. Accusator carbo contra vomica terreo depulso unde quisquam architecto natus.\n\n```js\nimport { readFileSync } from \"node:fs\";\n\nexport function loadSpes(path) {\n const raw = readFileSync(path, \"utf8\");\n return JSON.parse(raw);\n}\n```\n\n\n\n## Corporis artificiose adsuesco clarus\n\nCultura curso creo viridis conatus. Cunabula cado cerno caterva admoveo bonus calcar canonicus vulpes.\n\n```js\nimport { readFileSync } from \"node:fs\";\n\nexport function loadSaepe(path) {\n const raw = readFileSync(path, \"utf8\");\n return JSON.parse(raw);\n}\n```\n\n## Una arbitro terra tripudio\n\nAgo abundans audacia capillus canonicus venia decerno urbs delibero ustilo. Illum uxor delinquo denique. Depromo cohaero cogito bestia cognomen tumultus. Compare the notes in [aegrus admiratio](https://example.com/conduco/fugiat) before upgrading.\n\n- Vivo assumenda paens commemoro considero tonsor\n- Cura reprehenderit vespillo corporis advoco tactus\n- Tepesco aequus molestias umerus terminatio\n- Spoliatio pectus beatae vociferor impedit custodia\n\nImpedit corrupti casus inflammatio caritas ipsum tempore incidunt ocer. Cado esse comes.\n\n## Nam virgo\n\nTemptatio tempore aveho denego amo annus sonitus. Civis velociter utroque arbor. Accommodo benigne sto deprecator vicissitudo umerus ara desipio amoveo venia. Compare the notes in [vilitas toties tondeo](https://example.com/sperno/timor) before upgrading.\n\n| Stage | Default | Status |\n| --- | --- | --- |\n| eum | voro | ventosus crapula |\n| decens | adaugeo | stultus testimonium |\n| addo | consequatur | et suggero |",
"wordCount": 260,
"sections": 4
},
{
"markdown": "# Deinde Magnam Mollitia\n\nApparatus tego curto facere argumentum id iure uredo usus. Aspicio cruentus denego cimentarius cui.\n\n## Facilis corrumpo\n\nViscus ulterius bestia voluptatibus armarium eum. Voro ambitus celer tutis usque. Compare the notes in [verecundia virga cibo](https://example.com/antiquus/aiunt) before upgrading.\n\n- Placeat commodo\n- Totidem expedita caecus modi angustus tepidus\n- Totam advenio\n- Adnuo adinventitias pecco officia valeo facilis\n- Una accendo vinco utilis cado\n\n## Vorax crustulum acies aperiam quasi\n\nEius denego tot thema pectus velum antepono. Statua armarium cubo tenuis vindico eligendi. Decens atqui perferendis ago. Crinis tremo color ambulo trans audeo.\n\n| Name | Description | Notes |\n| --- | --- | --- |\n| vallum | surgo | patior uter |\n| condico | animus | antiquus causa |\n| tactus | demens | thesaurus tabernus |\n\n\n\n## Centum arx\n\nAperte cuppedia valeo ullus sonitus quaerat voluntarius civitas cibo volaticus. Tepidus creator temptatio subseco deorsum succedo tricesimus congregatio. Utrimque aperio reprehenderit temptatio vir alveus catena summopere verumtamen.\n\n- Accusantium auctor tredecim cui sortitus\n- Coepi voluptate\n- Speculum attonbitus\n- Capio somniculosus inventore agnosco tempora demitto\n\n## Temporibus adduco\n\nAlveus pel viridis crux desparatus tertius conventus certus desolo. Defessus sopor vero.\n\n```bash\nset -euo pipefail\n\ncurl -fsS \"https://example.com/api/ratione\" -o \"ratione.json\"\ngrep -c \"id\" \"ratione.json\"\n```",
"wordCount": 214,
"sections": 4
},
{
"markdown": "# Cupiditate Suppono Defero\n\nColor sono magni studio blandior tempora terror. Vis clamo vigor. Amet culpa alius quod veritas.\n\n## Suscipio tempore aperiam\n\nAbstergo soleo curtus ventosus certus dicta subito. Natus concido cupressus canis aliquam. Thema tenetur cupiditate modi articulus complectus ulciscor caecus ulterius nihil. This builds on the approach described in [arbitro fugiat](https://example.com/cuppedia/villa).\n\n- Concido admiratio pel taedium vulgus\n- Vel acervus id dolorem vulnero\n- Comedo delectatio tollo suppono aqua\n- Tardus allatus\n- Ter sol talis tot bardus\n\n## Abeo demo\n\nTeneo vulnus eaque ocer volaticus tricesimus casus. Ventus caveo supra corrumpo vulpes. Vestigium compono adimpleo tonsor mollitia accusator calco. Coniuratio verecundia est sollers quasi.\n\n- Dignissimos vigilo temptatio nesciunt\n- Cattus utilis\n- Asporto cubitum comprehendo\n\n| Value | Default | Stage |\n| --- | --- | --- |\n| conculco | vitiosus | ullus cornu |\n| aliqua | cervus | cupiditas tremo |\n| conservo | perferendis | ater cohaero |\n\nAppositus vomica aduro tamquam ver vigor dolore complectus utor suscipio. Colo voro deserunt. Virga eius vomica careo vita combibo vomica. Avarus comburo tergeo vestrum sumptus amissio aut exercitationem atavus.\n\n## Avaritia corrumpo\n\nDefluo aliquid bos arguo voveo tepidus cohaero cunctatio debeo. Alo sum arceo degenero auctus amoveo curatio adulatio vel asporto. Virgo cito clamo uterque thalassinus alter occaecati demitto terra.\n\n| Notes | Type | Value |\n| --- | --- | --- |\n| clementia | arma | deduco adopto |\n| aspernatur | impedit | stipes coniecto |\n| vulticulus | iure | cumque amicitia |\n\nDesino tollo ex credo ascisco delego antiquus. Sto benigne nostrum suasoria vito tabella solium vox causa laborum. Tripudio asperiores suscipit.\n\n## Vestigium demo\n\nCeler circumvenio decerno bellum utpote comburo aestas tempora. Clibanus attollo dignissimos carpo ventosus cura conturbo vel arx.\n\n\n\n```ts\nexport interface CruentusOptions {\n retries: number;\n timeoutMs: number;\n verbose: boolean;\n}\n\nexport function createCruentus(overrides: Partial<CruentusOptions>): CruentusOptions {\n return { retries: 3, timeoutMs: 5000, verbose: false, ...overrides };\n}\n```\n\n| Value | Description | Notes |\n| --- | --- | --- |\n| agnitio | vilitas | correptius tot |\n| aggero | adflicto | vomer surgo |\n| sophismata | thermae | temporibus terebro |",
"wordCount": 366,
"sections": 4
}
],
"meta": {
"endpoint": "markdown",
"count": 5,
"seed": 7,
"params": {
"sections": 4,
"codeBlocks": true,
"tables": true,
"lists": true,
"links": true,
"images": true
},
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} Generates complete Markdown documents with a predictable, parseable shape: an H1 title, an intro paragraph, then exactly sections H2 sections of 1–2 lorem-style paragraphs each.
The feature flags are a strict contract, not a probability:
true, the feature is force-placed into at least one section — even a sections=1 document contains every enabled feature;false, its syntax is completely absent: codeBlocks=false means not a single backtick, tables=false means no pipe characters, lists=false means no line starts with a dash, and links=false / images=false mean no bracket syntax of that kind.What each feature produces: fenced code blocks tagged js/ts/python/bash with a plausible snippet; 3-column pipe tables with header and separator rows; unordered lists of 3–5 dash items; inline links to https://example.com/… woven into paragraphs; and  images served by this platform's own placeholder API so they render in any preview.
wordCount is the whitespace-separated token count of the exact markdown string, and with a seed the same documents come back byte-identical forever.
Yes — toggle codeBlocks, tables, lists, links and images individually and set sections for length; ideal for stress-testing a renderer's edge cases.
Standard Markdown — headings, emphasis, fenced code, pipe tables, lists and links — the constructs mainstream renderers handle.
seed — same seed, same document, forever. wordCount in the response tells you how big it came out.
Lorem ipsum placeholder text — one paragraph, sentence or word per record, each with a word count, optionally opening with 'Lorem ipsum dolor sit amet'.
Fake git commits — Conventional Commits or plain messages, 40-char hashes, safe author emails, dates in your range and realistic diff stats. Fully seedable.
Random English words by part of speech — nouns, verbs, adjectives or adverbs — with working length filters, seedable output and honest 400s when nothing fits.
Fake file metadata — kebab-case names, the correct MIME type for every extension, plausible per-kind sizes, unix paths and seeded SHA-256-style checksums.
Fake blog posts with markdown bodies plus a threaded comment tree whose every parentId resolves inside the page — with working tag, status and date filters.