---
title: "Use this when you need placeholder/filler copy for mockups, tests, or layout."
method: POST
path: "/v1/lorem_ipsum"
tags: ["text"]
---

# Use this when you need placeholder/filler copy for mockups, tests, or layout.

`POST /v1/lorem_ipsum`

## Request

- Base URL: `https://api.clean.tools`
- URL: `https://api.clean.tools/v1/lorem_ipsum`
- Auth: none declared

Use this when you need placeholder/filler copy for mockups, tests, or layout. Given a `mode` ("paragraphs", "sentences", "words", or "formatted") and a `count`, cycles a fixed built-in Latin corpus to return the same text every time. `count` is clamped to the mode's max (paragraphs 20, sentences 100, words 500) and defaults to 1 when missing or below 1; "formatted" ignores `count` and returns a fixed multi-block sample (with count 0). Deterministic: same input, same output. Example: {mode: "words", count: 5} -> text "Lorem ipsum dolor sit amet.", count 5.

## Request body

- object
  - `mode` 'paragraphs' | 'sentences' | 'words' | 'formatted', required: Unit of generated text. "paragraphs", "sentences", or "words" repeat the corpus up to the requested count; "formatted" returns a fixed multi-block sample as plain text and ignores count.
  - `count` integer: How many units to generate. Clamped to the mode's max (paragraphs 20, sentences 100, words 500); values below 1 or missing default to 1. Unused for "formatted".

## Response `200`

Structured tool result.

- object
  - `tool` string
  - `result` object
    - `mode` 'paragraphs' | 'sentences' | 'words' | 'formatted', required: The generation mode used (echoes the requested `mode`).
    - `count` integer, required: The effective number of units generated after clamping/defaulting; always 0 for "formatted" mode.
    - `text` string, required: The generated placeholder text. Paragraphs are separated by blank lines; words mode is capitalized and terminated with a period.

## Other responses

- `400`: Invalid input or the tool reported an error.
- `413`: Request body exceeds the 128 KB limit.
- `429`: Rate limit exceeded; the response carries Retry-After and RateLimit-* headers — honor them and add jitter.

---

[API](https://skmtc.dev/clean/apis/clean-tools-api.md) · [All operations](https://skmtc.dev/clean/apis/clean-tools-api/llms.txt) · [OpenAPI document](https://skmtc.dev/clean/apis/clean-tools-api/revisions/a24a01d2833c?raw)
