Free Dad Jokes API

A free, open REST API for dad jokes. No API key required. 2,000+ jokes across 20 categories. Perfect for apps, Slack bots, CLI tools, tutorials, and README examples.

Base URL

https://jokelikeadad.com/api

Get a Random Joke

GET /api/random

Returns a single random dad joke.

Example

curl https://jokelikeadad.com/api/random

Response

{
  "id": "funny-042",
  "setup": "Why don't eggs tell jokes?",
  "punchline": "They'd crack each other up!",
  "category": "funny",
  "tags": ["food", "wordplay"]
}

List Jokes

GET /api/jokes

Returns a paginated list of jokes. Supports filtering by category.

Parameters

categoryFilter by category slug (e.g., funny, science)
limitResults per page, 1-100 (default: 20)
pagePage number (default: 1)

Example

curl "https://jokelikeadad.com/api/jokes?category=science&limit=5"

Response

{
  "total": 100,
  "page": 1,
  "limit": 5,
  "jokes": [
    {
      "id": "science-001",
      "setup": "Why can't you trust an atom?",
      "punchline": "They make up literally everything.",
      "category": "science",
      "tags": ["chemistry", "wordplay"]
    },
    ...
  ]
}

List Categories

GET /api/categories

Returns all available joke categories.

Example

curl https://jokelikeadad.com/api/categories

Response

{
  "categories": [
    {
      "slug": "funny",
      "name": "Funny Dad Jokes",
      "emoji": "😂",
      "description": "The funniest dad jokes...",
      "jokeCount": 100
    },
    ...
  ]
}

Quick Start (JavaScript)

// Get a random dad joke
const response = await fetch('https://jokelikeadad.com/api/random');
const joke = await response.json();

console.log(joke.setup);
// "Why don't eggs tell jokes?"
console.log(joke.punchline);
// "They'd crack each other up!"

Using the API?

The API is free to use. If you build something with it, we'd love a link back to jokelikeadad.com in your project, README, or blog post.