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
| Action | What it does |
|---|---|
| Check service status | Check whether icanhazdadjoke is answering, and how quickly. |
| Count dad jokes | Count the dad jokes about a subject, or the whole catalogue when no subject is given. |
| 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. |
| 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. |
| 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. |
| Get several random dad jokes | Get several different dad jokes at once, up to 100, optionally all about one subject. |
| Get the dad joke of the day | Pick one dad joke for a day and keep picking that same joke all day. |
| 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. |
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
messagetextonlinetrue/falserate_limitedtrue/falsereachabletrue/falseresponse_time_msnumberstatus_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
- About
termtext - Count only the jokes containing this word or phrase. Leave empty to count the whole catalogue.
Outputs
has_matchestrue/falsesampleobjecttermtexttotal_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 ID
joke_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
attachmentslistresponse_typetexttexttextusernametext
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
- About
termtext - Only draw from jokes containing this word or phrase. Leave empty to draw from every joke the service holds.
Outputs
jokeobjecttermtext
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 jokes
countnumber - How many jokes to draw, from 1 to 100. Defaults to 5.From 1 to 100.
- About
termtext - Only draw from jokes containing this word or phrase. Leave empty to draw from every joke the service holds.
- Seed
seedtext - 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_countnumberjokeslistrequested_countnumberseedtexttermtexttotal_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
- Day
datedate - The day to pick a joke for. Leave empty for today in UTC, which is what a scheduled step wants.
- About
termtext - Only pick from jokes containing this word or phrase. Leave empty to pick from every joke.
- Seed
seedtext - 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
datetextjokeobjectpool_sizenumberseedtexttermtext
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 for
termtextRequired - The word or phrase to look for in the jokes.
- Number of jokes
limitnumber - 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_countnumberjokeslistrequested_countnumbertermtexttotal_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
}