Settle it with a coin flip.
Documentation ↗
Request & details + Heads or tails. Optional count: integer 1..100. /coin?count=3 returns results plus heads and tails totals. Without count, returns one result. Text with count is a comma-separated list.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"result": "heads"
}
Try it URL >_ cURL
A six-sided die. No table required.
Documentation ↗
Request & details + Use count=1..100 to roll multiple dice. With count, the response contains sides, results, and total.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"result": 4
}
Try it URL >_ cURL
Your little corner of the internet.
Documentation ↗
Request & details + Caller IP from Cloudflare's CF-Connecting-IP metadata. Returns 503 if metadata is unavailable. Never uses X-Forwarded-For.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"ip": "203.0.113.42"
}
Try it URL >_ cURL
One ID. Extremely unlikely company.
Documentation ↗
Request & details + A fresh version 4 UUID from the Web Crypto API.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"uuid": "a834727e-01d1-4af5-bce5-3c377cf08924"
}
Try it URL >_ cURL
The question on everyone's mind.
Documentation ↗
Request & details + Uses the current UTC date, as do all calendar endpoints.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"yes": false
}
Try it URL >_ cURL
Six hex digits. Endless possibilities.
Documentation ↗
Request & details + An uppercase RGB hex color, including the # prefix.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"hex": "#A4F221"
}
Try it URL >_ cURL
A tiny response. A possible laugh.
Documentation ↗
Request & details + 429 curated jokes. No external requests.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"joke": "What did the fish say when it hit the wall? Dam."
}
Try it URL >_ cURL
One thought for the whole planet.
Documentation ↗
Request & details + One real, attributed quote per UTC day, from the same collection as /quote. Stable for everyone on the same deployed dataset. Cache expires at midnight UTC.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"quote": "Optimism is the faith that leads to achievement; nothing can be done without hope.",
"author": "Helen Keller",
"date": "2026-09-23"
}
Try it URL >_ cURL
Outsource your indecision.
Documentation ↗
Request & details + Random yes or no. No context, analysis, or hidden wisdom.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"answer": "yes"
}
Try it URL >_ cURL
Right now, in a very precise format.
Documentation ↗
Request & details + UTC by default. Optional timezone: an IANA name up to 64 characters, e.g. /time?timezone=America/Los_Angeles or Asia/Kolkata. Returns ISO 8601 with the current UTC offset, including daylight saving, plus timezone. Text returns only the time. Invalid zones return 400.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"time": "2026-09-23T05:12:42.123Z"
}
Try it URL >_ cURL
Seconds since the Unix epoch.
Documentation ↗
Request & details + An integer in seconds, not milliseconds.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"timestamp": 1790140362
}
Try it URL >_ cURL
Meet the browser making the request.
Documentation ↗
Request & details + The raw User-Agent header, capped at 1024 characters. An absent header is an empty string.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"user_agent": "Mozilla/5.0..."
}
Try it URL >_ cURL
For adventures with more sides.
Documentation ↗
Request & details + sides: integer 2..1000. Optional count: integer 1..100. Without count, returns sides and result. Text with count is a comma-separated list.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"sides": 20,
"results": [
2,
17,
9
],
"total": 28
}
Try it URL >_ cURL
A number within your boundaries.
Documentation ↗
Request & details + Inclusive integer min and max, default 0 and 100. Each must be between -2147483648 and 2147483647. min must not exceed max.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"result": 14
}
Try it URL >_ cURL
True or false. That's the whole API.
Documentation ↗
Request & details + A random JSON boolean. Text returns true or false.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"result": true
}
Try it URL >_ cURL
A little character for your day.
Documentation ↗
Request & details + All 1,923 fully qualified Unicode Emoji 18.0 entries without skin-tone modifiers, including flags and joined sequences. Bundled locally. Newer emoji may need an updated system font.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"emoji": "🦦"
}
Try it URL >_ cURL
Pick a card. Any of the 52 cards.
Documentation ↗
Request & details + Standard deck without jokers. Ranks: ace, 2..10, jack, queen, king. Suits: clubs, diamonds, hearts, spades. Independent draws. Text: queen of hearts.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"rank": "queen",
"suit": "hearts"
}
Try it URL >_ cURL
Because choosing lunch is hard.
Documentation ↗
Request & details + Required items: 1..100 comma-separated non-empty options. Whitespace is trimmed. Max 100 characters per option, 1500 in the decoded list, and 2048 in the encoded query.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"result": "tacos"
}
Try it URL >_ cURL
The groan is included for free.
Documentation ↗
Request & details + 392 dad jokes, with repeated punchlines and near-duplicates removed.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"joke": "What did one pirate say to the other when he beat him at chess? Checkmatey."
}
Try it URL >_ cURL
A small thought to take with you.
Documentation ↗
Request & details + 375 real excerpts from public-domain books, with real authors. Source works and translations are recorded in the repository. Text includes the author in parentheses.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"quote": "Optimism is the faith that leads to achievement; nothing can be done without hope.",
"author": "Helen Keller"
}
Try it URL >_ cURL
Something small worth knowing.
Documentation ↗
Request & details + 367 curated facts covering nature, space, inventions, history, and language. Sources are recorded in the repository.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"fact": "Giant anteaters walk on their front knuckles to protect their long claws."
}
Try it URL >_ cURL
A fortune cookie, minus the crumbs.
Documentation ↗
Request & details + 382 fortunes for entertainment, bundled locally.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"fortune": "An unfinished conversation will resume at the right moment."
}
Try it URL >_ cURL
A few kind words, on demand.
Documentation ↗
Request & details + 370 specific, everyday compliments. No input required.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"compliment": "You make a rainy day less disappointing."
}
Try it URL >_ cURL
For your next extremely late standup.
Documentation ↗
Request & details + 370 excuses for minor mishaps, lateness, and questionable planning.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"excuse": "I had to rescue a sock from behind the radiator."
}
Try it URL >_ cURL
Two options. An excellent distraction.
Documentation ↗
Request & details + 370 distinct questions with two choices. No input required.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"question": "Would you rather have a job with a short commute or have a job with long lunch breaks?"
}
Try it URL >_ cURL
Advice with absolutely no reasoning.
Documentation ↗
Request & details + Optional q: 1..300 characters after trimming. Echoed with a random answer. The question is never analyzed.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"question": "deploy to production",
"answer": "probably not"
}
Try it URL >_ cURL
Consult a very small digital oracle.
Documentation ↗
Request & details + One of 20 original affirmative, uncertain, or negative answers in the traditional style.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"answer": "The signs look good."
}
Try it URL >_ cURL
Rock. Paper. HTTP response.
Documentation ↗
Request & details + Randomly returns rock, paper, or scissors.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"result": "scissors"
}
Try it URL >_ cURL
Permission to close the laptop?
Documentation ↗
Request & details + True on Saturday and Sunday in UTC.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"yes": false
}
Try it URL >_ cURL
For when every day feels like Monday.
Documentation ↗
Request & details + The English name of the current UTC weekday.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"day": "Wednesday"
}
Try it URL >_ cURL
Your position in this year's progress bar.
Documentation ↗
Request & details + 1..365, or 366 in a leap year. January 1 is day 1. Uses UTC.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"day": 266
}
Try it URL >_ cURL
The week, with ISO-approved counting.
Documentation ↗
Request & details + ISO 8601 week and week-numbering year. Weeks start Monday. Week 1 contains January 4. Near New Year, year can differ from the calendar year. Text returns the week number.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"week": 39,
"year": 2026
}
Try it URL >_ cURL
A countdown that understands you.
Documentation ↗
Request & details + UTC calendar days until Friday, 0..6. Returns 0 on Friday.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"days": 2
}
Try it URL >_ cURL
Does February get a bonus day?
Documentation ↗
Request & details + Optional year: integer 1..9999, default current UTC year. Gregorian leap-year rule including century exceptions. Text returns the boolean.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"year": 2028,
"leap": true
}
Try it URL >_ cURL
Today's globally synchronized groan.
Documentation ↗
Request & details + One joke per UTC day, from the same collection as /joke. Cache expires at midnight UTC.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"joke": "What did the fish say when it hit the wall? Dam.",
"date": "2026-09-23"
}
Try it URL >_ cURL
Learn one small thing together.
Documentation ↗
Request & details + One fact per UTC day. Cache expires at midnight UTC.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"fact": "Giant anteaters walk on their front knuckles to protect their long claws.",
"date": "2026-09-23"
}
Try it URL >_ cURL
The universe's daily release notes.
Documentation ↗
Request & details + One fortune per UTC day, from the same collection as /fortune. Cache expires at midnight UTC.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"fortune": "An unfinished conversation will resume at the right moment.",
"date": "2026-09-23"
}
Try it URL >_ cURL
The whole internet's color of the day.
Documentation ↗
Request & details + Deterministic hex color seeded by UTC date and endpoint name. Text returns the hex value. Cache expires at midnight UTC.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"hex": "#9DC183",
"date": "2026-09-23"
}
Try it URL >_ cURL
Today's collective mood, in Unicode.
Documentation ↗
Request & details + Same full Unicode collection as /emoji, without skin-tone modifiers. One selection per UTC day; cached until midnight UTC. Text returns only the emoji.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"emoji": "🪴",
"date": "2026-09-23"
}
Try it URL >_ cURL
I'm a teapot. You could be one too.
Documentation ↗
Request & details + Supported: 200, 201, 202, 204, 205, 301, 302, 303, 304, 307, 308, 400, 401, 403, 404, 405, 408, 409, 410, 413, 414, 415, 418, 422, 425, 429, 451, 500, 501, 502, 503, 504, 507, 511. 204, 205, 304 have no body. Redirect statuses have no Location header.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"status": 418
}
Try it URL >_ cURL
Patience, as a service.
Documentation ↗
Request & details + seconds: integer 0..10. Waits approximately that long. No busy loop or external request.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"delayed": 2
}
Try it URL >_ cURL
Hello, request. Meet your reflection.
Documentation ↗
Request & details + JSON only. Arbitrary query parameters and the same safe headers as /headers. At most 32 parameters, names 1..64 characters, values at most 256. Repeated names become arrays. format is reserved. Do not put secrets in URLs.
Request path (JSON only) Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"method": "GET",
"path": "/echo",
"query": {
"hello": "world"
},
"headers": {
"accept": "*/*"
}
}
Try it URL >_ cURL
A small, reassuring sign of life.
Documentation ↗
Request & details + Reports that the Worker can respond. No external services to check.
Request path · supports format=text Open endpoint ↗
EXAMPLE RESPONSE JSON
{
"status": "ok"
}
Try it URL >_ cURL