JokeAPI logo

JokeAPI

JokeAPI is a free, open source REST API that delivers consistently formatted jokes in JSON, XML, YAML, or plain text. It exposes seven joke categories (Any, Misc, Programming, Dark, Pun, Spooky, Christmas), six blacklist content flags (nsfw, religious, political, racist, sexist, explicit), and filters for language, joke type, ID range, contains-text search, amount, and safe-mode. No sign-up is required and CORS is enabled. The service is rate-limited at 120 requests per minute per IP (5 per minute on submissions) and is maintained by Sv443 under the MIT license. The canonical source lives on Sv443's own Git server, with this GitHub repo kept open for issues and the community wrapper-library index.

1 APIs 3 Capabilities 0 Features
JokesHumorEntertainmentOpen SourceREST APIGames And ComicsPublic APIs

APIs

JokeAPI v2

The JokeAPI v2 REST surface — ten endpoints covering joke retrieval (`/joke/{category}`), submission (`/submit`), and metadata (`/categories`, `/flags`, `/formats`, `/languages`...

Capabilities

JokeAPI — Jokes

JokeAPI — Jokes. 2 operations. Lead operation: JokeAPI Get Joke by Category. Self-contained Naftiko capability covering one JokeAPI business surface — retrieving jokes from any ...

Run with Naftiko

JokeAPI — Metadata

JokeAPI — Metadata. 5 operations. Lead operation: JokeAPI List Categories. Self-contained Naftiko capability covering one JokeAPI business surface — describing the API surface i...

Run with Naftiko

JokeAPI — System

JokeAPI — System. 3 operations. Lead operation: JokeAPI Get Info. Self-contained Naftiko capability covering one JokeAPI business surface — runtime introspection (`/info`), endp...

Run with Naftiko

Semantic Vocabularies

Jokeapi Context

14 classes · 47 properties

JSON-LD

API Governance Rules

JokeAPI API Rules

42 rules · 15 errors 18 warnings 9 info

SPECTRAL

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHub
GitHub
💻
SourceCode
SourceCode
🔗
License
License
🔗
Discord
Discord
🟢
StatusPage
StatusPage
🔗
Sponsor
Sponsor
🔗
PublicAPIsListing
PublicAPIsListing
🔗
OpenAPI
OpenAPI
🔗
JSONSchema
JSONSchema
🔗
JSONLDContext
JSONLDContext
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
SpectralRuleset
SpectralRuleset
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
aid: jokeapi
name: JokeAPI
description: >-
  JokeAPI is a free, open source REST API that delivers consistently formatted
  jokes in JSON, XML, YAML, or plain text. It exposes seven joke categories
  (Any, Misc, Programming, Dark, Pun, Spooky, Christmas), six blacklist content
  flags (nsfw, religious, political, racist, sexist, explicit), and filters for
  language, joke type, ID range, contains-text search, amount, and safe-mode.
  No sign-up is required and CORS is enabled. The service is rate-limited at
  120 requests per minute per IP (5 per minute on submissions) and is
  maintained by Sv443 under the MIT license. The canonical source lives on
  Sv443's own Git server, with this GitHub repo kept open for issues and the
  community wrapper-library index.
url: https://raw.githubusercontent.com/api-evangelist/jokeapi/refs/heads/main/apis.yml
image: https://sv443.net/cdn/jokeapi/icon_readme.png
tags:
  - Jokes
  - Humor
  - Entertainment
  - Open Source
  - REST API
  - Games And Comics
  - Public APIs
type: Index
access: 3rd-Party
position: Consumer
specificationVersion: '0.20'
created: '2026-05-28'
modified: '2026-05-29'
x-source: public-apis/public-apis
x-category: "Games & Comics"
x-type: opensource
x-tier: 3
x-tier-reason: bulk-registered-from-public-apis-enriched-via-opensource-pipeline
apis:
  - aid: jokeapi:jokeapi-v2
    name: JokeAPI v2
    description: >-
      The JokeAPI v2 REST surface — ten endpoints covering joke retrieval
      (`/joke/{category}`), submission (`/submit`), and metadata
      (`/categories`, `/flags`, `/formats`, `/languages`, `/langcode/{language}`,
      `/info`, `/endpoints`, `/ping`). Supports JSON, XML, YAML, and plain text
      response formats, six blacklist flags, seven joke categories, and six
      joke languages (English, German, Czech, Spanish, French, Portuguese).
    humanURL: https://jokeapi.dev/
    baseURL: https://v2.jokeapi.dev
    tags:
      - Jokes
      - Humor
      - REST API
    properties:
      - type: OpenAPI
        url: https://raw.githubusercontent.com/api-evangelist/jokeapi/refs/heads/main/openapi/jokeapi-openapi.yml
      - type: Documentation
        url: https://jokeapi.dev/
      - type: Documentation
        url: https://jokeapi.dev/#try-it
      - type: SourceCode
        url: https://git.sv443.net/sv443/JokeAPI-v2
      - type: SourceCodeMirror
        url: https://github.com/Sv443-Network/JokeAPI
      - type: ChangeLog
        url: https://github.com/Sv443-Network/JokeAPI/blob/main/changelog.md
      - type: StatusPage
        url: https://status.sv443.net/
      - type: SDK
        url: https://github.com/sahithyandev/sv443-joke-api-js-wrapper
        title: Node.js Wrapper (community)
      - type: SDK
        url: https://github.com/thenamesweretakenalready/Sv443s-JokeAPI-Python-Wrapper
        title: Python Wrapper (community)
      - type: SDK
        url: https://github.com/bitstep-ie/jokeapi
        title: TypeScript Wrapper (community)
      - type: SDK
        url: https://github.com/DanBuxton/JokeAPI-CS-Wrapper
        title: C# Wrapper (community)
      - type: SDK
        url: https://github.com/MichaelDark/jokeapi
        title: Dart Wrapper (community)
      - type: SDK
        url: https://github.com/Icelain/jokeapi
        title: Go Wrapper (community)
      - type: SDK
        url: https://github.com/the-codeboy/Jokes4J
        title: Java Wrapper — Jokes4J (community)
      - type: SDK
        url: https://github.com/EasyG0ing1/JavaJokesAPI
        title: Java Wrapper — JavaJokesAPI (community)
      - type: SDK
        url: https://github.com/khurozov/jokeapi-java
        title: Java Wrapper — jokeapi-java (community)
      - type: SDK
        url: https://github.com/ethauvin/jokeapi
        title: Kotlin / Java / Android Wrapper (community)
      - type: SDK
        url: https://github.com/IllusionMan1212/jokeapi-odin
        title: Odin Wrapper (community)
      - type: SDK
        url: https://github.com/JustPush-io/php-jokeapi
        title: PHP Wrapper (community)
      - type: SDK
        url: https://github.com/canarado/joketeller
        title: Rust Wrapper — joketeller (community)
      - type: NaftikoCapability
        url: capabilities/jokeapi-jokes.yaml
      - type: NaftikoCapability
        url: capabilities/jokeapi-metadata.yaml
      - type: NaftikoCapability
        url: capabilities/jokeapi-system.yaml
common:
  - type: Website
    url: https://jokeapi.dev/
  - type: Documentation
    url: https://jokeapi.dev/
  - type: GitHub
    url: https://github.com/Sv443-Network/JokeAPI
  - type: SourceCode
    url: https://git.sv443.net/sv443/JokeAPI-v2
  - type: License
    url: https://github.com/Sv443-Network/JokeAPI/blob/main/LICENSE.txt
  - type: Discord
    url: https://dc.sv443.net/
  - type: StatusPage
    url: https://status.sv443.net/
  - type: Sponsor
    url: https://github.com/sponsors/Sv443
  - type: PublicAPIsListing
    url: https://github.com/public-apis/public-apis
  - type: OpenAPI
    url: https://raw.githubusercontent.com/api-evangelist/jokeapi/refs/heads/main/openapi/jokeapi-openapi.yml
  - type: JSONSchema
    url: https://raw.githubusercontent.com/api-evangelist/jokeapi/refs/heads/main/json-schema/jokeapi-single-joke-schema.json
  - type: JSONLDContext
    url: https://raw.githubusercontent.com/api-evangelist/jokeapi/refs/heads/main/json-ld/jokeapi-context.jsonld
  - type: Plans
    url: plans/jokeapi-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/jokeapi-rate-limits.yml
  - type: SpectralRuleset
    url: rules/jokeapi-spectral-rules.yml
  - type: Vocabulary
    url: vocabulary/jokeapi-vocabulary.yml
features:
  - name: Free and Open
    description: No sign-up, no API key, MIT license, source open on git.sv443.net (mirrored on GitHub).
  - name: Multi-Format Responses
    description: Same data available as JSON (default), XML, YAML, or plain text via `?format`.
  - name: Blacklist Flags
    description: Filter out jokes flagged as nsfw, religious, political, racist, sexist, or explicit.
  - name: Safe Mode
    description: A single `?safe-mode` switch excludes every joke that carries any flag and every joke in the Dark category.
  - name: Multi-Language Catalogue
    description: Jokes available in English, German, Czech, Spanish, French, and Portuguese.
  - name: Bulk Retrieval
    description: Pull up to 10 jokes per request via `?amount`.
  - name: ID and Contains Filters
    description: Constrain results by joke ID, ID range, or full-text contains query.
  - name: CORS Enabled
    description: Browser apps can call the API directly without a proxy.
  - name: Community Submissions
    description: "`POST /submit` lets the community contribute new jokes (separate 5-per-minute rate limit, moderator review)."
useCases:
  - name: Chat Bots and Slack Apps
    description: Drop a joke endpoint into a Discord, Slack, or Teams bot.
  - name: Developer Easter Eggs
    description: 404 pages, CLI surprises, build-success notifications.
  - name: API Learning Sandbox
    description: A safe, free target for OpenAPI tutorials, REST workshops, and SDK demos.
  - name: Web Component Demos
    description: Quick payloads to populate joke cards, comedy widgets, and humour newsletters.
  - name: Content Moderation Training
    description: Public dataset of jokes pre-classified with offensive-content flags, useful for moderation tooling tests.
integrations:
  - name: Node.js wrapper
  - name: Python wrapper
  - name: TypeScript wrapper
  - name: C# wrapper
  - name: Dart wrapper
  - name: Go wrapper
  - name: Java wrappers
  - name: Kotlin / Android wrapper
  - name: Odin wrapper
  - name: PHP wrapper
  - name: Rust wrapper
solutions:
  - name: Daily Joke Feed
    description: Cron a fetch every morning into a Slack channel, RSS feed, or static site build.
  - name: Comedy CMS
    description: Combine `/joke/{category}` with `/submit` to power a community-driven joke board.
  - name: Safe-by-Default Embed
    description: Use `?safe-mode` plus `?blacklistFlags` to deliver workplace-safe humour widgets.
maintainers:
  - FN: Kin Lane
    email: [email protected]