Dad Joke API

A free, no-auth, no-frills API for dad jokes. 1133 jokes in DB currently

Endpoints

MethodPathDescription
GET/api/jokes/randomReturns a random joke.
GET/api/jokes/{id}Returns a specific joke. IDs are stable 8-char content hashes.
GET/api/jokesPaginated list. Query params: limit (1–200, default 50), cursor (id of last item from the previous page).
GET/api/attributionSource URLs and ownership notice.
GET/healthzHealth check.

Try it

curl https://dadjokes.bamboozledaardvark.com/api/jokes/random

Example response:

{
  "id": "a3f9b21c",
  "joke": "I'm reading a book about anti-gravity. Honestly? Can't put it down."
}

Pagination

curl 'https://dadjokes.bamboozledaardvark.com/api/jokes?limit=10'
curl 'https://dadjokes.bamboozledaardvark.com/api/jokes?limit=10&cursor=a3f9b21c'

The response includes next_cursor. When it's null, you've reached the end.

Rate limits

The API is throttled at the gateway level (default: 20 requests/second sustained, 50 burst). Be kind. Cache responses where you can — per-joke endpoints return long Cache-Control headers because their IDs are immutable content hashes.

Attribution & ownership

These jokes were found on the interwebs — specifically, public dad-joke APIs, permissively licensed joke datasets, and public threads on r/dadjokes — then curated and lightly normalized for distinctness. I do not claim authorship of the underlying gags. Most are widely-circulated dad jokes shared by the community over the years.

If you authored one of these and would like it removed or credited differently, please open an issue on the GitHub repo.