chucknorris.io API

Beginner's Pick Entertainment / No Auth Required Beginner HTTPS
Free to Use
46 D
Measured Score 0 50 100 Speed 2/30 Consistency 1/20 Security 20/20 Browser access 15/15 Transparency 8/15 TESTED 2026-08-10

Overview

chucknorris.io is a free JSON API serving a curated database of Chuck Norris jokes, with endpoints for fetching random jokes, filtering by category, and searching joke text. All requests are unauthenticated, responses are immediate, and the API supports CORS for direct browser use. It is a classic beginner-friendly API used in tutorials for its simplicity and humor.

Beginner Tip

chucknorris.io is perfect for a first API project — no sign-up, no API key, and you can test every endpoint directly in your browser. Start with https://api.chucknorris.io/jokes/random to see a joke immediately, then explore categories with /jokes/categories.

Measurement Record

What actually happened when we called this API from our own infrastructure. Every value below was recorded by the request, not copied from the provider's documentation.

Request
GET https://api.chucknorris.io/jokes/random
Result
HTTP 200 · application/json · 358 bytes · compressed
Response time
1074 ms (median of 3) · fastest 257 ms
Transport
TLSv1.3 · TLS_AES_256_GCM_SHA384 · certificate issued by Google Trust Services
Browser CORS
Allowed — Access-Control-Allow-Origin: *
Served by
cloudflare
Recorded
2026-08-10

Fields Returned

Top-level fields present in the response we captured, with the type and value we actually received.

Field Type Value received
categories array [0 items]
created_at string (date) 2020-01-05 13:42:19.104863
icon_url string (url) https://api.chucknorris.io/img/avatar/chuck-n…
id string 6Gmu4wB-QO60anyd6UuZWA
updated_at string (date) 2020-01-05 13:42:19.104863
url string (url) https://api.chucknorris.io/jokes/6Gmu4wB-QO60…
value string Chuck Norris' beard does not hide his secret …

Captured Response

Captured from a real request to https://api.chucknorris.io/jokes/random on 2026-08-10. Long arrays and nested objects are truncated to keep the shape readable.

JSON Response · Captured
{
  "categories": [],
  "created_at": "2020-01-05 13:42:19.104863",
  "icon_url": "https://api.chucknorris.io/img/avatar/chuck-norris.png",
  "id": "6Gmu4wB-QO60anyd6UuZWA",
  "updated_at": "2020-01-05 13:42:19.104863",
  "url": "https://api.chucknorris.io/jokes/6Gmu4wB-QO60anyd6UuZWA",
  "value": "Chuck Norris' beard does not hide his secret smile. It hides another, angrier beard."
}

Field Reference

id Unique identifier for the joke, usable to construct a direct permalink URL
value The full text of the Chuck Norris joke
url Canonical permalink URL for this specific joke on chucknorris.io
categories List of category labels assigned to this joke (e.g., ["science", "money"]); empty array if uncategorized
created_at Date when this joke was added to the database
icon_url URL to the Chuck Norris avatar image associated with this joke

Implementation Example

Calls a real endpoint of this API. Replace any placeholder credentials with your own key.

Request
const url = "https://api.chucknorris.io/jokes/random";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

How This API Fails

We deliberately sent this API a broken request and recorded exactly what came back on 2026-08-10. Knowing the shape of an error before you hit it makes error handling much easier to write.

HTTP 404 Requesting a path that does not exist application/json
{
  "timestamp": "2026-08-10T19:56:17.077Z",
  "status": 404,
  "error": "Not Found",
  "path": "/jokes/random/apisscore-nonexistent-path"
}

Common Errors & Troubleshooting

Generated guidance based on this API's documentation, not observed by us. Treat it as a starting point and check against the provider's own error reference.

404 on /jokes/random?category=invalid Category names are case-sensitive and must exactly match a value returned by /jokes/categories
Fetch the categories list first and use only values from that response; do not hardcode category names
Search returns empty results array The /jokes/search?query= endpoint requires at least 3 characters and is case-insensitive but exact-word-match
Use shorter, common words for search queries (e.g., "time" or "world") rather than full phrases
Inconsistent joke content when filtering by category Some categories have only a small number of jokes, so results repeat quickly with repeated random calls
For demo purposes, use the default random endpoint without a category filter to maximize variety

Measured Score Breakdown

Live HTTP request to the API endpoint

Speed 2/30
Consistency 1/20
Security 20/20
Browser access 15/15
Transparency 8/15
Endpoint Response Time 1074ms

Fully tested on Aug 10, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Category Entertainment
Difficulty Beginner
Endpoint last called: 2026-08-10

Related Tags

Similar APIs

View All →