Dad Joke API
A free, no-auth, no-frills API for dad jokes. 133 jokes in DB currently
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/jokes/random | Returns a random joke. |
| GET | /api/jokes/{id} | Returns a specific joke. IDs are stable 8-char content hashes. |
| GET | /api/jokes | Paginated list. Query params: limit (1–200, default 50), cursor (id of last item from the previous page). |
| GET | /api/attribution | Source URLs and ownership notice. |
| GET | /healthz | Health 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 threads on r/dadjokes — and lightly rephrased for distinctness. I do not claim authorship of the underlying gags. Most are widely-circulated dad jokes shared by the community over the years; the rephrasings here exist purely so we're not republishing verbatim copies of other people's posts.
If you authored one of these and would like it removed or credited differently, please open an issue on the GitHub repo.