Italian Jokes API
Free joke API with no key returning Italian-themed jokes, each tagged with a subtype such as Wordplay, One-liner or Observational so you can filter the tone. Live example.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the Italian Jokes API?
The Italian Jokes API is a free, key-free endpoint returning Italian-themed jokes. Each joke arrives with an id, a type and a subtype — Wordplay, One-liner, Observational, Long or Stereotype — so you can filter by tone before displaying anything.
The subtype taxonomy is the feature worth using, and not only for variety. `Stereotype` is one of the categories, which is exactly the sort of material you may not want surfacing unfiltered in a product. Because the classification ships with every joke rather than being something you infer, filtering it out is a one-line guard — a rare case of a novelty API making moderation straightforward instead of leaving it to you.
The response shape has one sharp edge. Passing `limit=1` returns a bare object, not an array containing one item, so a client that always indexes `[0]` breaks the moment it is pointed at a single-joke request. Decide up front whether you are handling one shape or two. Note as well that no allow-origin header is sent, so a browser fetch from your own domain will be blocked and a small proxy is required.
Quick facts
- Base URL
https://italian-jokes.vercel.app/api- Authentication
- No key or account. A small community project hosted on Vercel's free tier.
- Rate limit
- No rate-limit headers are returned. Keep request volumes modest and cache; the joke pool is small enough to fetch and store locally.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Italian Jokes API
Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Fetch a random Italian joke
GET https://italian-jokes.vercel.app/api/jokes?limit=1
curl 'https://italian-jokes.vercel.app/api/jokes?limit=1'const res = await fetch("https://italian-jokes.vercel.app/api/jokes?limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://italian-jokes.vercel.app/api/jokes?limit=1", timeout=20)
res.raise_for_status()
print(res.json()){
"id": 21,
"joke": "As is tradition in Italian families, Maria spends her wedding night in her family home. She was heard exclaiming, 'His shoe size is enormous!'",
"type": "Italian",
"subtype": "Long"
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
subtype | query | Optional | Filter by tone: `One-liner`, `Observational`, `Wordplay`, `Long` or `Stereotype`. Capitalisation matters. Wordplay |
limit | query | Optional | How many jokes to return. Note that a limit of 1 returns a bare object rather than a one-element array. 1 |
Response fields
idinteger- Numeric joke id, stable enough to use for deduplication across calls.
jokestring- The joke text itself, already punctuated and ready to display.
typestring- Always `Italian` on this API — present so the shape matches other joke APIs rather than to distinguish anything.
subtypestring- The useful classifier: `Wordplay`, `One-liner`, `Observational`, `Long` or `Stereotype`. Filter on this before display.
What you can build with the Italian Jokes API
- Add a joke command to a Discord or Slack bot with tone filtering
- Fill an empty state or loading screen with a one-liner
- Build a joke-of-the-day widget for a restaurant or food site
- Practise conditional filtering against a small, well-labelled dataset
- Seed a party game or icebreaker generator
Common errors and how to fix them
A crash on results[0]
With `limit=1` the response is a bare object, not an array.
Fix: Normalise at the boundary — wrap a non-array response in an array before your rendering code touches it.
An empty response for a subtype
The subtype value is case-sensitive and hyphenated.
Fix: Use the exact forms: `One-liner`, `Observational`, `Wordplay`, `Long`, `Stereotype`.
A CORS error in the browser
No allow-origin header is sent.
Fix: Call it from your backend. Since the joke pool is small, fetching it once and caching is a better pattern anyway.
Content you would rather not ship
The `Stereotype` subtype is exactly what it sounds like.
Fix: Filter it out explicitly rather than relying on chance — the classification exists precisely so you can.
Italian Jokes API — frequently asked questions
Does the Italian Jokes API need an API key?
No. It is entirely open — a plain GET with no key, no account and no headers returns a joke. It is a small community project, so keep request volumes modest.
Can I filter out offensive jokes?
Yes. Every joke carries a `subtype`, and `Stereotype` is one of the values. Filtering on that field is the intended way to control what your application shows, and it is far more reliable than keyword matching.
Why does limit=1 return an object instead of an array?
The API returns a single joke bare rather than wrapping it. Any client that assumes an array will break, so normalise the response — wrap non-arrays in an array — before passing it downstream.
What subtypes are available?
One-liner, Observational, Wordplay, Long and Stereotype. The values are case-sensitive and hyphenated exactly as written, so a lowercase filter returns nothing rather than an error.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Random List Picker
Paste a list and pick random winners without repeats, or shuffle the whole list. A fair random name and item picker for giveaways, draws and raffles.
Word Counter
Count words, characters, sentences, paragraphs and estimated reading time instantly. Free online word counter for essays, blogs and social media.
Alternatives to Italian Jokes API
If Italian Jokes does not fit, these game & anime apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| PokéAPI | Free Pokémon API with no key: stats, types, abilities, moves, evolutions and sprites for 1,000+ species. The most popular API for learning REST. Tested example. | No key | Yes | 19 Aug 2026 |
| Rick and Morty API | Free Rick and Morty API with no key: 800+ characters, episodes and locations with images, filtering and pagination. REST and GraphQL. Tested example. | No key | Yes | 19 Aug 2026 |
| Jikan (MyAnimeList) | Free unofficial MyAnimeList API with no key: anime and manga data, scores, characters, staff and seasonal listings. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| Deck of Cards | Free playing card API with no key: shuffle decks, draw cards, manage piles and get card images. Stateful deck ids. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| JokeAPI | Free JokeAPI with no key: programming, pun and miscellaneous jokes with category filters, blacklist flags and safe mode for family-friendly output. Tested. | No key | Yes | 20 Aug 2026 |
| Kitsu | Free Kitsu API with no key: anime and manga with synopses, ratings, episode counts, genres and poster images. JSON:API format. Tested curl example. | No key | No | 20 Aug 2026 |
Italian Jokes is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.