RandNext API
Free, read-only random jokes, quotes, questions and words as JSON. No API key needed for normal use. Version 1 is served from /api/v1.
Quick start
curl https://randnext.com/api/v1/jokes/randomconst res = await fetch("https://randnext.com/api/v1/quotes/random?category=wisdom");
const quote = await res.json();
console.log(`“${quote.text}” — ${quote.author}`);Endpoints
Each content type has the same three endpoints. Types: jokes, quotes, questions, words.
| Request | Returns |
|---|---|
GET /api/v1/{type}/random | One random item |
GET /api/v1/{type}?limit=1..20 | { data: Item[], count } — distinct random items (default 10) |
GET /api/v1/{type}/{id} | One item by ID (cacheable) |
GET /api/v1/health | Service status |
GET /api/v1/openapi.json | OpenAPI 3.1 description |
Query parameters
category— jokes: general, programming, dad, pun, animal; quotes: inspirational, life, work, humor, wisdom; questions: icebreaker, classroom, friends, deep, would-you-rather; words: noun, verb, adjective, adverb.safety—family(family-level only) orgeneral(default: family and general). Adult content is never served.- Words only:
min_length,max_length(1–30),starts_with(one letter).
Response
{
"id": "qt_000001",
"type": "quote",
"text": "Well done is better than well said.",
"author": "Benjamin Franklin",
"category": "wisdom",
"tags": [],
"language": "en",
"safety_level": "family",
"source_url": null,
"license": "public-domain",
"attribution": "Poor Richard’s Almanack (1737)",
"permalink": "https://randnext.com/random-quote?id=qt_000001"
}When attribution is not null you must show it next to the content.
Errors
{ "error": { "code": "RATE_LIMITED", "message": "Too many requests. Please try again later." } }| 400 | INVALID_PARAMETER | A parameter is invalid, e.g. an unknown category or a limit out of range. |
| 404 | NOT_FOUND | Unknown type, unknown ID, removed item, or nothing matches your filters. |
| 429 | RATE_LIMITED | Too many requests. Wait for the number of seconds in Retry-After. |
| 500 | INTERNAL_ERROR | Something went wrong on our side. |
| 503 | SERVICE_UNAVAILABLE | Temporarily unavailable or under maintenance. |
Limits and caching
- 60 requests per minute and 1,000 per day, per IP. Every response includes
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset. - Random endpoints are never cached; by-ID responses may be cached for up to an hour.
- CORS is open for GET requests from any origin.
Terms of use
- Free use requires a visible “Powered by RandNext” link to randnext.com.
- Show the
attributionfield whenever it’s present. - Don’t download the whole content library to republish or resell it.
- There is no SLA. We may change limits or block abusive traffic.
Support
The public API currently covers jokes, quotes, questions and words; other RandNext generators do not have public endpoints. For API questions or to report a problem, email support@randnext.com and include the endpoint and response status.