Loremeow

LoreMeow API

A tiny public endpoint for fetching cat ipsum. No API key, permissive CORS, returns plain text, JSON, or HTML.

Endpoint

GET https://loremeow.com/api/meow

Every purrgraph is guaranteed to contain a literal MEOW. Output is generated fresh on each request unless you pass a seed.

Query parameters

ParamValuesDefaultDescription
paragraphsinteger 1–1003How many purrgraphs to generate.
modestandard | mix | breedsstandardGeneration style.
catnipbooleanfalseSpicier output: more sentences and fillers.
startbooleantrueOpen with the classic “Lorem meow dolor sit amet…”.
titlebooleanfalsePrepend an <h1> heading (html format).
subbooleanfalseInsert <h2> subheadings between purrgraphs (html).
seedintegerrandomPass a seed to reproduce identical output.
formattext | json | htmljsonResponse representation.

Formats

json (default) — the purrgraphs plus the seed used:

{ "paragraphs": ["Lorem meow dolor sit amet, …"], "seed": 20240606, "mode": "standard" }

text — plain text, purrgraphs separated by a blank line.

html<p> blocks (plus <h1>/<h2> when title/sub are set), ready to paste.

Examples

# Three standard purrgraphs as plain text
curl "https://loremeow.com/api/meow?paragraphs=3&format=text"

# Spicy breeds as JSON
curl "https://loremeow.com/api/meow?mode=breeds&catnip=true&format=json"

# Reproducible output with a fixed seed
curl "https://loremeow.com/api/meow?seed=42&format=text"
// In the browser — CORS is open
const res = await fetch("https://loremeow.com/api/meow?paragraphs=2");
const { paragraphs, seed } = await res.json();
console.log(paragraphs, seed);

CORS & headers

Responses send Access-Control-Allow-Origin: *, so you can fetch from any origin. The seed used for a response is returned in the X-Meow-Seed header (and in the JSON body) — reuse it with ?seed= to reproduce the exact output.

Rate limits

Please be reasonable. Rate limiting is enforced at the proxy layer, not in application code, so limits may apply to bursts of traffic.