JokeAPI website screenshot

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.

JokeAPI publishes 3 APIs on the APIs.io network: Jokes API, Metadata API, and System API. Tagged areas include Jokes, Humor, Entertainment, Open Source, and REST API.

The JokeAPI catalog on APIs.io includes 1 JSON-LD context and 2 Spectral governance rulesets.

JokeAPI’s developer surface includes documentation, GitHub presence, and 16 more developer resources.

40.1/100 thin ▼ -7.5 Agent 39/100 agent ready Full breakdown ↓
scored 2026-07-28 · rubric v0.6
AccessFreeOpen⚡ Free to try
3 APIs
JokesHumorEntertainmentOpen SourceREST APIGames And ComicsPublic APIs

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-28 · rubric v0.6
Composite quality — 40.1/100 · thin
Contract Quality 13.0 / 25
Developer Ergonomics 1.7 / 20
Commercial Clarity 4.2 / 20
Operational Transparency 5.5 / 13
Governance 8.3 / 12
Discoverability 7.4 / 10
Agent readiness — 39/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 0 / 12
Machine-Readable Auth 0 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 4 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/jokeapi: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 3

Individual APIs this provider publishes, each with its own machine-readable definition.

JokeAPI Jokes API

Operations for retrieving and submitting jokes.

JokeAPI Metadata API

Operations describing the API surface — categories, flags, formats, languages.

JokeAPI System API

Health and discovery endpoints.

Open Collections 1

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

JokeAPI

OPEN COLLECTION

Pricing Plans 1

Published pricing tiers and plan structures.

Jokeapi Plans Pricing

2 plans

PLANS

Rate Limits 1

Documented rate limits and quota policies.

Jokeapi Rate Limits

2 limits

RATE LIMITS

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Jokeapi Context

14 classes · 47 properties

JSON-LD

Spectral Rules 2

Spectral governance rulesets for linting and validating these APIs.

JokeAPI API Rules

5 rules · 4 warnings 1 info

SPECTRAL

JokeAPI API Rules

46 rules · 15 errors 21 warnings 10 info

SPECTRAL

JSON Schema 14

Standalone JSON Schema definitions for this provider's data models.

CategoriesResponse

4 properties

JSON SCHEMA

EndpointsResponse

3 properties

JSON SCHEMA

FlagsResponse

3 properties

JSON SCHEMA

FormatsResponse

3 properties

JSON SCHEMA

InfoResponse

8 properties

JSON SCHEMA

JokeBatch

3 properties

JSON SCHEMA

JokeFlags

6 properties

JSON SCHEMA

JokeSubmission

8 properties

JSON SCHEMA

LangcodeResponse

3 properties

JSON SCHEMA

LanguagesResponse

6 properties

JSON SCHEMA

PingResponse

3 properties

JSON SCHEMA

SingleJoke

8 properties

JSON SCHEMA

SubmissionResponse

4 properties

JSON SCHEMA

TwopartJoke

9 properties

JSON SCHEMA

Scroll for all 14

JSON Structure 14

JSON Structure definitions describing this provider's data shapes.

Jokeapi Categories Response Structure

4 properties

JSON STRUCTURE

Jokeapi Endpoints Response Structure

3 properties

JSON STRUCTURE

Jokeapi Flags Response Structure

3 properties

JSON STRUCTURE

Jokeapi Formats Response Structure

3 properties

JSON STRUCTURE

Jokeapi Info Response Structure

8 properties

JSON STRUCTURE

Jokeapi Joke Batch Structure

3 properties

JSON STRUCTURE

Jokeapi Joke Flags Structure

6 properties

JSON STRUCTURE

Jokeapi Joke Submission Structure

8 properties

JSON STRUCTURE

Jokeapi Langcode Response Structure

3 properties

JSON STRUCTURE

Jokeapi Languages Response Structure

6 properties

JSON STRUCTURE

Jokeapi Ping Response Structure

3 properties

JSON STRUCTURE

Jokeapi Single Joke Structure

8 properties

JSON STRUCTURE

Jokeapi Submission Response Structure

4 properties

JSON STRUCTURE

Jokeapi Twopart Joke Structure

9 properties

JSON STRUCTURE

Scroll for all 14

Examples 14

Example request and response payloads for these APIs.

Scroll for all 14

Security Posture 1

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Jokeapi Domain Security

TLSv1.3 · HSTS · DNSSEC · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Jokeapi Agentic Access

10 operations · 1 acting

10 operations · 1 acting

AGENTIC

Resources

Documentation 3

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 3

Pagination, idempotency, versioning, errors, and events

Build 2

SDKs, sample code, and the tooling you integrate with

Access & Security 1

Authentication, authorization, and security posture

Operate 3

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 2

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml 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
accessModel:
  pricing: free
  onboarding: open
  trial: false
  try_now: true
  public: true
  label: Free · Open access
  confidence: medium
  source:
  - plans
  generated: '2026-07-22'
  method: derived
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-jokes-api
  name: JokeAPI Jokes API
  description: Operations for retrieving and submitting jokes.
  humanURL: https://jokeapi.dev/
  baseURL: https://v2.jokeapi.dev
  tags:
  - Jokes
  properties:
  - type: OpenAPI
    url: openapi/jokeapi-jokes-api-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: SDKs
    url: https://github.com/sahithyandev/sv443-joke-api-js-wrapper
  - type: SDKs
    url: https://github.com/thenamesweretakenalready/Sv443s-JokeAPI-Python-Wrapper
  - type: SDKs
    url: https://github.com/bitstep-ie/jokeapi
  - type: SDKs
    url: https://github.com/DanBuxton/JokeAPI-CS-Wrapper
  - type: SDKs
    url: https://github.com/MichaelDark/jokeapi
  - type: SDKs
    url: https://github.com/Icelain/jokeapi
  - type: SDKs
    url: https://github.com/the-codeboy/Jokes4J
  - type: SDKs
    url: https://github.com/EasyG0ing1/JavaJokesAPI
  - type: SDKs
    url: https://github.com/khurozov/jokeapi-java
  - type: SDKs
    url: https://github.com/ethauvin/jokeapi
  - type: SDKs
    url: https://github.com/IllusionMan1212/jokeapi-odin
  - type: SDKs
    url: https://github.com/JustPush-io/php-jokeapi
  - type: SDKs
    url: https://github.com/canarado/joketeller
- aid: jokeapi:jokeapi-metadata-api
  name: JokeAPI Metadata API
  description: Operations describing the API surface — categories, flags, formats, languages.
  humanURL: https://jokeapi.dev/
  baseURL: https://v2.jokeapi.dev
  tags:
  - Metadata
  properties:
  - type: OpenAPI
    url: openapi/jokeapi-metadata-api-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: SDKs
    url: https://github.com/sahithyandev/sv443-joke-api-js-wrapper
  - type: SDKs
    url: https://github.com/thenamesweretakenalready/Sv443s-JokeAPI-Python-Wrapper
  - type: SDKs
    url: https://github.com/bitstep-ie/jokeapi
  - type: SDKs
    url: https://github.com/DanBuxton/JokeAPI-CS-Wrapper
  - type: SDKs
    url: https://github.com/MichaelDark/jokeapi
  - type: SDKs
    url: https://github.com/Icelain/jokeapi
  - type: SDKs
    url: https://github.com/the-codeboy/Jokes4J
  - type: SDKs
    url: https://github.com/EasyG0ing1/JavaJokesAPI
  - type: SDKs
    url: https://github.com/khurozov/jokeapi-java
  - type: SDKs
    url: https://github.com/ethauvin/jokeapi
  - type: SDKs
    url: https://github.com/IllusionMan1212/jokeapi-odin
  - type: SDKs
    url: https://github.com/JustPush-io/php-jokeapi
  - type: SDKs
    url: https://github.com/canarado/joketeller
- aid: jokeapi:jokeapi-system-api
  name: JokeAPI System API
  description: Health and discovery endpoints.
  humanURL: https://jokeapi.dev/
  baseURL: https://v2.jokeapi.dev
  tags:
  - System
  properties:
  - type: OpenAPI
    url: openapi/jokeapi-system-api-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: SDKs
    url: https://github.com/sahithyandev/sv443-joke-api-js-wrapper
  - type: SDKs
    url: https://github.com/thenamesweretakenalready/Sv443s-JokeAPI-Python-Wrapper
  - type: SDKs
    url: https://github.com/bitstep-ie/jokeapi
  - type: SDKs
    url: https://github.com/DanBuxton/JokeAPI-CS-Wrapper
  - type: SDKs
    url: https://github.com/MichaelDark/jokeapi
  - type: SDKs
    url: https://github.com/Icelain/jokeapi
  - type: SDKs
    url: https://github.com/the-codeboy/Jokes4J
  - type: SDKs
    url: https://github.com/EasyG0ing1/JavaJokesAPI
  - type: SDKs
    url: https://github.com/khurozov/jokeapi-java
  - type: SDKs
    url: https://github.com/ethauvin/jokeapi
  - type: SDKs
    url: https://github.com/IllusionMan1212/jokeapi-odin
  - type: SDKs
    url: https://github.com/JustPush-io/php-jokeapi
  - type: SDKs
    url: https://github.com/canarado/joketeller
common:
- type: AgenticAccess
  url: agentic-access/jokeapi-agentic-access.yml
- type: DomainSecurity
  url: security/jokeapi-domain-security.yml
- 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: kin@apievangelist.com