Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/api-league-humor-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: League Humor API
description: API League is a Hub for World Class APIs.
termsOfService: https://apileague.com/terms
version: 1.9.0
contact:
name: David Urbansky
email: mail@apileague.com
servers:
- url: https://api.apileague.com
security:
- apiKey: []
- headerApiKey: []
tags:
- name: Humor
paths:
/search-jokes:
get:
responses:
'200':
description: Success
headers: {}
content:
application/json:
schema:
type: object
properties:
jokes:
type: array
items:
type: object
properties:
joke:
type:
- string
- 'null'
available:
type: integer
examples:
Response:
value:
jokes:
- joke: "A retiring farmer in preparation for selling his land, needed to rid his farm of animals. So he went to every house in his town. \nTo the houses where the man is the boss, he gave a horse. To the houses where the woman is the boss, a chicken was given. \nHe got toward the end of the street and saw a couple outside gardening. \"Who's the boss around here?\" he asked. \n\"I am.\" said the man. \n\"I have a black horse and a brown horse,\" the farmer said, \"which one would you like?\" \nThe man thought for a minute and said, \"The black one.\" \n\"No, no, no, get the brown one.\" the man's wife said. \n\"Here's your chicken.\" said the farmer."
- joke: "A blonde decides to try horseback riding, even though she has had no\nlessons or prior experience. She mounts the horse unassisted and then\nhorse immediately springs into motion. It gallops along at a steady and\nrhythmic pace, but the blonde begins to slip from the\nsaddle. In terror, she grabs for the horse's mane, but cannot seem to get\na firm grip.\nShe tries to throw her arms around the horse's neck, but she slides down\nthe side of the horse anyway. The horse gallops along, seemingly\nimpervious to its slipping rider. Finally, giving up her frail grip, she\nleaps away from the horse to try and throw herself to safety.\nUnfortunately, her foot has become entangled in the stirrup and she is now\nat the mercy of the horse's pounding hooves as her head is battered\nagainst the ground again and again. She is mere moments away from\nunconsciousness when...\n ...the Wal-Mart manager runs out to shut the horse off."
- joke: Once Chuck Norris met a man on a horse that he did'nt like, now we know him as the headless horseman.
available: 169
'401':
description: Unauthorized
'402':
description: Payment Required
'403':
description: Forbidden
'404':
description: Not Found
'406':
description: Not Acceptable
'429':
description: Too Many Requests
parameters:
- name: keywords
description: A comma-separated list of words that must occur in the joke.
schema:
pattern: .
maxLength: 300
type: string
example: horse,man
required: false
style: form
explode: false
in: query
- name: include-tags
description: A comma-separated list of tags the jokes should have.
schema:
pattern: .
maxLength: 300
type: string
example: animal
required: false
style: form
explode: false
in: query
- name: exclude-tags
description: A comma-separated list of tags the jokes must not have.
schema:
pattern: .
maxLength: 300
type: string
example: nsfw,dark
required: false
style: form
explode: false
in: query
- name: min-rating
description: The minimum rating in range [0.0,1.0] of the jokes.
schema:
format: double
minimum: 0
maximum: 1
type: number
example: 0
required: false
style: form
explode: false
in: query
- name: max-length
description: The maximum length of the joke in letters.
schema:
format: double
minimum: 0
maximum: 1
type: number
example: 140
required: false
style: form
explode: false
in: query
- name: offset
description: The number of jokes to skip, between 0 and 1000.
schema:
format: int32
minimum: 0
maximum: 1000
type: integer
example: 0
required: false
style: form
explode: false
in: query
- name: number
description: The number of jokes, between 1 and 10.
schema:
format: int32
minimum: 1
maximum: 10
type: integer
example: 3
required: false
style: form
explode: false
in: query
externalDocs:
description: Read entire docs
url: https://apileague.com/apis/search-jokes-api/
summary: Search Jokes API
tags:
- Humor
description: With over 50,000 jokes, you should find something for any occasion. There are 27 categories/tags to choose from, but you can also search for very specific words within jokes.
operationId: searchJokesAPI
deprecated: false
/retrieve-random-joke:
get:
responses:
'200':
description: Success
headers: {}
content:
application/json:
schema:
type: object
properties:
joke:
type:
- string
- 'null'
examples:
Response:
value:
joke: 'What do you call a boxing match between two aardvarks?
A snout bout!'
'401':
description: Unauthorized
'402':
description: Payment Required
'403':
description: Forbidden
'404':
description: Not Found
'406':
description: Not Acceptable
'429':
description: Too Many Requests
parameters:
- name: include-tags
description: A comma-separated list of tags the jokes should have.
schema:
pattern: .
maxLength: 300
type: string
example: animal
required: false
style: form
explode: false
in: query
- name: exclude-tags
description: A comma-separated list of tags the jokes must not have.
schema:
pattern: .
maxLength: 300
type: string
example: nsfw,dark
required: false
style: form
explode: false
in: query
- name: min-rating
description: The minimum rating in range [0.0,1.0] of the jokes.
schema:
format: double
minimum: 0
maximum: 1
type: number
example: 0
required: false
style: form
explode: false
in: query
- name: max-length
description: The maximum length of the joke in letters.
schema:
format: int32
minimum: 1
maximum: 10000
type: integer
example: 140
required: false
style: form
explode: false
in: query
externalDocs:
description: Read entire docs
url: https://apileague.com/apis/random-joke-api/
summary: Random Joke API
tags:
- Humor
description: This is a simple API that returns a random joke. You can filter the jokes by tags and keywords. To make sure they are safe for work, you could use the exclude-tags parameter to exclude jokes with certain tags such as "nsfw" or "religious".
operationId: randomJokeAPI
deprecated: false
/search-memes:
get:
responses:
'200':
description: Success
headers: {}
content:
application/json:
schema:
type: object
properties:
memes:
type: array
items:
type: object
properties:
description:
type:
- string
- 'null'
url:
type:
- string
- 'null'
type:
type:
- string
- 'null'
available:
type: integer
examples:
Response:
value:
memes:
- description: 'Hey, you want a light show?: Edit: Thank you for getting the joke. I didn’t think a joke about gloving would land, but I appreciate your sense of humor Imgur. Let me know what shows you are going to or went to this year. DM me if you want to team up on Rocket League.'
url: https://i.imgur.com/4msjS5E.mp4
type: video/mp4
- description: 'Rocket Money is a scam.: Prevented a $30 charge of something I don''t use anymore. Feels good.'
url: https://i.imgur.com/q3cZlpv.png
type: image/png
- description: 'Rocket Money is a scam.: Cat tax.'
url: https://i.imgur.com/yaZoCFP.jpg
type: image/jpeg
available: 156
'401':
description: Unauthorized
'402':
description: Payment Required
'403':
description: Forbidden
'404':
description: Not Found
'406':
description: Not Acceptable
'429':
description: Too Many Requests
parameters:
- name: keywords
description: A comma-separated list of words that must occur in the meme.
schema:
pattern: .
maxLength: 300
type: string
example: rocket
required: false
style: form
explode: false
in: query
- name: keywords-in-image
description: Whether the keywords must occur in the image.
schema:
type: boolean
example: true
required: false
style: form
explode: false
in: query
- name: media-type
description: The media type (either 'image', 'video' or even specific format such as 'jpg', 'png', or 'gif').
schema:
pattern: .
maxLength: 10
type: string
example: image
required: false
style: form
explode: false
in: query
- name: min-rating
description: The minimum rating in range [0.0,1.0] of the meme.
schema:
format: double
minimum: 0
maximum: 1
type: number
example: 0
required: false
style: form
explode: false
in: query
- name: max-age-days
description: The maximum age of the meme in days.
schema:
format: int32
minimum: 0
maximum: 10000
type: integer
example: 30
required: false
style: form
explode: false
in: query
- name: offset
description: The number of memes to skip, between 0 and 1000.
schema:
format: int32
minimum: 0
maximum: 1000
type: integer
example: 0
required: false
style: form
explode: false
in: query
- name: number
description: The number of memes, between 1 and 10.
schema:
format: int32
minimum: 1
maximum: 10
type: integer
example: 3
required: false
style: form
explode: false
in: query
externalDocs:
description: Read entire docs
url: https://apileague.com/apis/search-memes-api/
summary: Search Memes API
tags:
- Humor
description: Search over 300,000 memes by keyword, rating, and age. Most memes are stills (images) but using the media-type you can also get videos. You can even search for text within memes. You'll surely find something funny.
operationId: searchMemesAPI
deprecated: false
/retrieve-random-meme:
get:
responses:
'200':
description: Success
headers: {}
content:
application/json:
schema:
type: object
properties:
description:
type:
- string
- 'null'
url:
type:
- string
- 'null'
type:
type:
- string
- 'null'
width:
type: integer
height:
type: integer
ratio:
type: number
examples:
Response:
value:
description: That's totally fine.
url: https://preview.redd.it/2wpfufhz8p751.jpg?width=640&crop=smart&auto=webp&s=dab7d5eba791f3a884b0c0614630c99e38c46c4d
type: image/jpeg
width: 640
height: 702
ratio: 0.9116809116809117
'401':
description: Unauthorized
'402':
description: Payment Required
'403':
description: Forbidden
'404':
description: Not Found
'406':
description: Not Acceptable
'429':
description: Too Many Requests
parameters:
- name: keywords
description: A comma-separated list of words that must occur in the meme.
schema:
pattern: .
maxLength: 300
type: string
example: airplane
required: false
style: form
explode: false
in: query
- name: keywords-in-image
description: Whether the keywords must occur in the image.
schema:
type: boolean
example: true
required: false
style: form
explode: false
in: query
- name: media-type
description: The media type (either 'image', 'video' or even specific format such as 'jpg', 'png', or 'gif').
schema:
pattern: .
maxLength: 10
type: string
example: image
required: false
style: form
explode: false
in: query
- name: min-rating
description: The minimum rating in range [0.0,1.0] of the meme.
schema:
format: double
minimum: 0
maximum: 1
type: number
example: 0
required: false
style: form
explode: false
in: query
- name: max-age-days
description: The maximum age of the meme in days.
schema:
format: int32
minimum: 0
maximum: 1000
type: integer
example: 30
required: false
style: form
explode: false
in: query
externalDocs:
description: Read entire docs
url: https://apileague.com/apis/random-meme-api/
summary: Random Meme API
tags:
- Humor
description: Get a random meme out of over 300,000+ memes. To get the latest memes, you can use the max-age-days parameter.
operationId: randomMemeAPI
deprecated: false
/search-gifs:
get:
responses:
'200':
description: Success
headers: {}
content:
application/json:
schema:
type: object
properties:
images:
type: array
items:
type: object
properties:
url:
type:
- string
- 'null'
width:
type: integer
height:
type: integer
examples:
Response:
value:
images:
- url: https://media.tenor.com/xEf4j9pnMywAAAAC/dog-dogs.gif
width: 362
height: 498
- url: https://media.tenor.com/U-g_SmVeq40AAAAC/poodle-dancing-dog-poodle.gif
width: 248
height: 498
- url: https://media.tenor.com/SmFA9ziWpx4AAAAC/dogs-dog.gif
width: 498
height: 374
'401':
description: Unauthorized
'402':
description: Payment Required
'403':
description: Forbidden
'404':
description: Not Found
'406':
description: Not Acceptable
'429':
description: Too Many Requests
parameters:
- name: query
description: The search query.
schema:
pattern: .
maxLength: 300
type: string
example: dogs
required: true
style: form
explode: false
in: query
- name: number
description: The number of gifs to return in range [1,10]
schema:
format: int32
minimum: 1
maximum: 10
type: integer
example: 5
required: false
style: form
explode: false
in: query
externalDocs:
description: Read entire docs
url: https://apileague.com/apis/search-gifs-api/
summary: Search Gifs API
tags:
- Humor
description: Search through hundreds of thousands of gifs to match any reaction you want. The gifs are returned in a list with the URL, width, and height of the gif.
operationId: searchGifsAPI
deprecated: false
/generate-nonsense-word:
get:
responses:
'200':
description: Success
headers: {}
content:
application/json:
schema:
type: object
properties:
word:
type:
- string
- 'null'
rating:
type: number
examples:
Response:
value:
word: caboo
rating: 0.41
'401':
description: Unauthorized
'402':
description: Payment Required
'403':
description: Forbidden
'404':
description: Not Found
'406':
description: Not Acceptable
'429':
description: Too Many Requests
parameters: []
externalDocs:
description: Read entire docs
url: https://apileague.com/apis/generate-nonsense-word-api/
summary: Generate Nonsense Word API
tags:
- Humor
description: Generate a funny sounding nonsense word. This is useful for generating random words for games, naming things, or just for fun. The response will contain the generated word and a rating of how funny it is.
operationId: generateNonsenseWordAPI
deprecated: false
components:
securitySchemes:
apiKey:
name: api-key
type: apiKey
in: query
headerApiKey:
name: x-api-key
type: apiKey
in: header