icanhazdadjoke

App · Misc References · 8 actions

Pull dad jokes from icanhazdadjoke's open catalogue of several hundred groan-worthy one-liners. Draw one at random or a batch of them, narrow to a subject such as dogs or coffee, search every joke, look one up by id, or pick a joke of the day that stays the same all day so a scheduled post never tells two. Every joke comes with a link to its page and to the service's own rendering of it as an image, and there is a ready-made Slack message too. No account and no API key: connecting takes one click.

Actions

ActionWhat it does
Check service statusCheck whether icanhazdadjoke is answering, and how quickly.
Count dad jokesCount the dad jokes about a subject, or the whole catalogue when no subject is given.
Get a dad joke by idGet one specific dad joke by its id, for re-reading a joke an earlier step found or a person sent a link to.
Get a dad joke for SlackGet a random dad joke already formatted as a Slack message, the way the service's own Slack app posts it.
Get a random dad jokeGet one random dad joke, with the text ready to post and a link to both its page and the service's own rendering of it as an image.
Get several random dad jokesGet several different dad jokes at once, up to 100, optionally all about one subject.
Get the dad joke of the dayPick one dad joke for a day and keep picking that same joke all day.
Search dad jokesFind the dad jokes about something: search every joke for a word or phrase and get the matches back in the service's own order.

Check service status

Check whether icanhazdadjoke is answering, and how quickly. This is the one action that reports a problem as a value instead of failing the step, so a workflow can decide what to do about it. Being asked to slow down is reported separately from being down.

Inputs

None.

Outputs

messagetext
onlinetrue/false
rate_limitedtrue/false
reachabletrue/false
response_time_msnumber
status_codenumber
Example output
{
  "message": "icanhazdadjoke is up and telling jokes.",
  "online": true,
  "rate_limited": false,
  "reachable": true,
  "response_time_ms": 118.4,
  "status_code": 200
}

Count dad jokes

Count the dad jokes about a subject, or the whole catalogue when no subject is given. One request, and no jokes pulled down: it is what a workflow asks before drawing, to find out whether there is anything about a subject at all and how much there is to draw on. The first match comes back with the count, since the service sends it anyway.

Inputs

Abouttermtext
Count only the jokes containing this word or phrase. Leave empty to count the whole catalogue.

Outputs

has_matchestrue/false
sampleobject
termtext
total_jokesnumber
Example output
{
  "has_matches": true,
  "sample": {
    "id": "GlGBIY0wAAd",
    "image_url": "https://icanhazdadjoke.com/j/GlGBIY0wAAd.png",
    "permalink": "https://icanhazdadjoke.com/j/GlGBIY0wAAd",
    "text": "How much does a hipster weigh? An instagram."
  },
  "term": "hipster",
  "total_jokes": 2
}

Get a dad joke by id

Get one specific dad joke by its id, for re-reading a joke an earlier step found or a person sent a link to. Ids belong to their joke rather than to a position in a list, so one stored today still returns the same joke next year.

Inputs

Joke IDjoke_idtextRequired
The joke's id, such as R7UfaahVfFd. A full icanhazdadjoke.com link to the joke is also accepted, including the .png image link.

Outputs

jokeobject
Example output
{
  "joke": {
    "id": "R7UfaahVfFd",
    "image_url": "https://icanhazdadjoke.com/j/R7UfaahVfFd.png",
    "permalink": "https://icanhazdadjoke.com/j/R7UfaahVfFd",
    "text": "My dog used to chase people on a bike a lot. It got so bad I had to take his bike away."
  }
}

Get a dad joke for Slack

Get a random dad joke already formatted as a Slack message, the way the service's own Slack app posts it. The attachments come back untouched so they can be handed to Slack as-is, with the joke's text beside them for a step that only wants the words. This is the one route that names no id, so there is no link or image with it: use Get a random dad joke if the workflow needs those.

Inputs

None.

Outputs

attachmentslist
response_typetext
texttext
usernametext
Example output
{
  "attachments": [
    {
      "fallback": "What kind of magic do cows believe in? MOODOO.",
      "footer": " - ",
      "text": "What kind of magic do cows believe in? MOODOO."
    }
  ],
  "response_type": "in_channel",
  "text": "What kind of magic do cows believe in? MOODOO.",
  "username": "icanhazdadjoke"
}

Get a random dad joke

Get one random dad joke, with the text ready to post and a link to both its page and the service's own rendering of it as an image. Narrow it to a subject such as dog or coffee, or leave the subject empty to draw from every joke.

Inputs

Abouttermtext
Only draw from jokes containing this word or phrase. Leave empty to draw from every joke the service holds.

Outputs

jokeobject
termtext
Example output
{
  "joke": {
    "id": "R7UfaahVfFd",
    "image_url": "https://icanhazdadjoke.com/j/R7UfaahVfFd.png",
    "permalink": "https://icanhazdadjoke.com/j/R7UfaahVfFd",
    "text": "My dog used to chase people on a bike a lot. It got so bad I had to take his bike away."
  },
  "term": null
}

Get several random dad jokes

Get several different dad jokes at once, up to 100, optionally all about one subject. No joke is drawn twice in the same batch. Give it a seed and the same seed draws the same jokes in the same order every time, so a run can be repeated; leave the seed empty for a fresh draw. Asking for more jokes about a subject than exist returns all of them rather than failing.

Inputs

Number of jokescountnumber
How many jokes to draw, from 1 to 100. Defaults to 5.From 1 to 100.
Abouttermtext
Only draw from jokes containing this word or phrase. Leave empty to draw from every joke the service holds.
Seedseedtext
Any text you like. The same seed always draws the same jokes, so a workflow can be re-run and get the same batch. Leave empty for a different draw each time.

Outputs

joke_countnumber
jokeslist
requested_countnumber
seedtext
termtext
total_jokesnumber
Example output
{
  "joke_count": 3,
  "jokes": [
    {
      "id": "R7UfaahVfFd",
      "image_url": "https://icanhazdadjoke.com/j/R7UfaahVfFd.png",
      "permalink": "https://icanhazdadjoke.com/j/R7UfaahVfFd",
      "text": "My dog used to chase people on a bike a lot. It got so bad I had to take his bike away."
    },
    {
      "id": "M7wPC5wPKBd",
      "image_url": "https://icanhazdadjoke.com/j/M7wPC5wPKBd.png",
      "permalink": "https://icanhazdadjoke.com/j/M7wPC5wPKBd",
      "text": "Did you hear the one about the guy with the broken hearing aid? Neither did he."
    },
    {
      "id": "MRZ0LJtHQCd",
      "image_url": "https://icanhazdadjoke.com/j/MRZ0LJtHQCd.png",
      "permalink": "https://icanhazdadjoke.com/j/MRZ0LJtHQCd",
      "text": "What do you call a fly without wings? A walk."
    }
  ],
  "requested_count": 3,
  "seed": null,
  "term": null,
  "total_jokes": 307
}

Get the dad joke of the day

Pick one dad joke for a day and keep picking that same joke all day. A random draw gives a different joke on every call, so a daily workflow that retries, or that two people run an hour apart, tells two different jokes for the one day. This one is fixed by the date: the same date always gives the same joke, and tomorrow gives a different one. Add a seed of your own to have two workspaces tell different jokes on the same day.

Inputs

Daydatedate
The day to pick a joke for. Leave empty for today in UTC, which is what a scheduled step wants.
Abouttermtext
Only pick from jokes containing this word or phrase. Leave empty to pick from every joke.
Seedseedtext
Any text you like, mixed into the day so that two workspaces running this on the same day get different jokes. Leave empty to share the day's joke with everyone else.

Outputs

datetext
jokeobject
pool_sizenumber
seedtext
termtext
Example output
{
  "date": "2026-09-15",
  "joke": {
    "id": "MRZ0LJtHQCd",
    "image_url": "https://icanhazdadjoke.com/j/MRZ0LJtHQCd.png",
    "permalink": "https://icanhazdadjoke.com/j/MRZ0LJtHQCd",
    "text": "What do you call a fly without wings? A walk."
  },
  "pool_size": 307,
  "seed": "2026-09-15",
  "term": null
}

Search dad jokes

Find the dad jokes about something: search every joke for a word or phrase and get the matches back in the service's own order. The total number of matches is always reported, however many were returned, so a step can tell whether it has seen all of them.

Inputs

Search fortermtextRequired
The word or phrase to look for in the jokes.
Number of jokeslimitnumber
How many matches to return, from 1 to 120. Defaults to 10. The service pages at 30, so asking for more than that reads as many pages as it takes.From 1 to 120.

Outputs

joke_countnumber
jokeslist
requested_countnumber
termtext
total_jokesnumber
Example output
{
  "joke_count": 2,
  "jokes": [
    {
      "id": "GlGBIY0wAAd",
      "image_url": "https://icanhazdadjoke.com/j/GlGBIY0wAAd.png",
      "permalink": "https://icanhazdadjoke.com/j/GlGBIY0wAAd",
      "text": "How much does a hipster weigh? An instagram."
    },
    {
      "id": "xc21Lmbxcib",
      "image_url": "https://icanhazdadjoke.com/j/xc21Lmbxcib.png",
      "permalink": "https://icanhazdadjoke.com/j/xc21Lmbxcib",
      "text": "How did the hipster burn the roof of his mouth? He ate the pizza before it was cool."
    }
  ],
  "requested_count": 10,
  "term": "hipster",
  "total_jokes": 2
}

On this page