Get chuck norris jokes

When the user asks for a Chuck Norris joke — random, themed by category, or matched by keyword — reach for the Chuck Norris Jokes API. 16 categories, no auth required.

get-chuck-norris-jokes · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/get-chuck-norris-jokes. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/get-chuck-norris-jokes/SKILL.md.

When to use this skill

When the user asks for a Chuck Norris joke — random, themed by one of 16 categories (dev, science, food, political, etc.), or matched to a keyword like "Mortal Kombat". This API is narrowly scoped to one comedian's fictional mythology; for dad jokes, programming puns, or multi-subject humor, reach for JokeAPI or icanhazdadjoke instead.

Your best first call

Two user intents, two calls:

curl "https://api.chucknorris.io/jokes/random?category=dev"
curl "https://api.chucknorris.io/jokes/search?query=mortal+kombat"

No auth. No key. Use /jokes/random (with optional ?category=) when the user wants one joke or a themed joke. Use /jokes/search?query= when the user names a specific topic. The ?category=dev filter is worth knowing in coding-assistant contexts — it returns jokes that reference programming concepts and land better with technical users than a generic roundhouse-kick joke.

The random endpoint returns one joke object. The search endpoint returns {total, result} where result is an array of matching joke objects. Key fields on every joke:

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can fetch Chuck Norris jokes — random, filtered by category, or matched by keyword — from chucknorris.io with no authentication, but the joke collection has been frozen since 2020.

APIs this skill uses

Chuck Norris Jokes API · primary · verified

A free JSON API for hand-curated Chuck Norris facts.

Generated from

Chuck Norris Jokes API tutorial Getting Started with the Chuck Norris Jokes API

SKILL.md source (frontmatter + body)
---
name: get-chuck-norris-jokes
description: When the user asks for a Chuck Norris joke — random, themed by category, or matched by keyword — reach for the Chuck Norris Jokes API. 16 categories, no auth required.
---

## When to use this skill

When the user asks for a Chuck Norris joke — random, themed by one of 16 categories (`dev`, `science`, `food`, `political`, etc.), or matched to a keyword like "Mortal Kombat". This API is narrowly scoped to one comedian's fictional mythology; for dad jokes, programming puns, or multi-subject humor, reach for JokeAPI or icanhazdadjoke instead.

## Your best first call

Two user intents, two calls:

```bash
curl "https://api.chucknorris.io/jokes/random?category=dev"
```

```bash
curl "https://api.chucknorris.io/jokes/search?query=mortal+kombat"
```

No auth. No key. Use `/jokes/random` (with optional `?category=`) when the user wants one joke or a themed joke. Use `/jokes/search?query=` when the user names a specific topic. The `?category=dev` filter is worth knowing in coding-assistant contexts — it returns jokes that reference programming concepts and land better with technical users than a generic roundhouse-kick joke.

The random endpoint returns one joke object. The search endpoint returns `{total, result}` where `result` is an array of matching joke objects. Key fields on every joke:

- `value` — the joke text
- `categories` — array of category tags; empty array `[]` is the norm, not missing data — most jokes are untagged, and only explicitly classified ones carry a tag
- `id` — stable identifier for permalink
- `url` — permalink to the joke on chucknorris.io

## Fallbacks (when the best call isn't enough)

- **User wants to see available themes before picking a category** → `/jokes/categories` returns all 16 category names as a flat string array. Call once and cache for the session.

## Pitfalls

- **Explicit jokes are in the default random pool.** Calling `/jokes/random` with no `category` filter can return jokes tagged `["explicit"]`. Check the `categories` field before surfacing to users who didn't ask for adult content, or always pass a specific safe category like `?category=science`.
- **The dataset is frozen.** Every joke has a `created_at` of `2020-01-05`. No new material since then — don't expect recent cultural references.
- **Single-word search queries are firehoses.** A broad keyword returns hundreds of results. Use specific multi-word phrases to get a usable `total`, or combine with a category approach when the topic is broad.

## One-line summary for the user

I can fetch Chuck Norris jokes — random, filtered by category, or matched by keyword — from chucknorris.io with no authentication, but the joke collection has been frozen since 2020.

« Back to all skills