Bored API Riddles API

Random or keyed riddles with difficulty filter (v2 only).

Operations 2

GET /api/v2/riddles Get a Random Riddle #
GET /api/v2/riddles/{key} Get a Riddle by Key #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

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/bored-riddles-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 Specification

bored-riddles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bored Riddles API
  version: 2.0.0
  summary: A Free and Simple API to Help You Find Something Better to Do
  description: The Bored API is a free, no-authentication public API that returns suggestions for things to do when you are bored. The canonical implementation is the open-source MEVN (MongoDB / Express / Vue / Node) project maintained by Drew Thoennes at github.com/drewthoennes/Bored-API. The historically hosted instance at https://www.boredapi.com/ has been intermittently or fully unreachable since 2024 (originally hosted on Heroku); community mirrors such as https://bored-api.appbrewery.com continue to serve the dataset. This specification documents both the v1 (legacy, activities-only) and v2 (activities + facts + riddles + websites + suggestions) surfaces of the canonical Drew Thoennes implementation so the API contract is preserved for self-hosting and historical reference.
  contact:
    name: Drew Thoennes
    url: https://github.com/drewthoennes/Bored-API
  license:
    name: MIT
    url: https://github.com/drewthoennes/Bored-API/blob/master/license
  x-status: deprecated-hosted-instance
  x-status-notes: The official hosted instance at https://www.boredapi.com/ is no longer reliably reachable. The reference implementation remains open source and can be self-hosted. The App Brewery community fork (https://bored-api.appbrewery.com) provides an actively maintained hosted mirror with a slightly different path scheme.
servers:
- url: https://www.boredapi.com
  description: Original hosted instance (historically; intermittent / dead as of 2024)
- url: http://localhost:8080
  description: Self-hosted local instance (npm install && npm start)
tags:
- name: Riddles
  description: Random or keyed riddles with difficulty filter (v2 only).
paths:
  /api/v2/riddles:
    get:
      tags:
      - Riddles
      summary: Get a Random Riddle
      description: Returns a single random riddle, optionally filtered by difficulty (easy, normal, hard).
      operationId: getRandomRiddle
      parameters:
      - name: difficulty
        in: query
        description: Filter riddles by difficulty.
        required: false
        schema:
          type: string
          enum:
          - easy
          - normal
          - hard
      responses:
        '200':
          description: A random riddle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiddleEnvelope'
        '400':
          $ref: '#/components/responses/Error'
  /api/v2/riddles/{key}:
    get:
      tags:
      - Riddles
      summary: Get a Riddle by Key
      description: Returns the riddle matching the supplied key.
      operationId: getRiddleByKey
      parameters:
      - $ref: '#/components/parameters/KeyPathParam'
      - name: difficulty
        in: query
        required: false
        schema:
          type: string
          enum:
          - easy
          - normal
          - hard
      responses:
        '200':
          description: The riddle matching the supplied key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiddleEnvelope'
        '400':
          $ref: '#/components/responses/Error'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          example: Failed to query due to error in arguments
      required:
      - error
    Riddle:
      type: object
      properties:
        question:
          type: string
          example: What has keys but can't open locks?
        answer:
          type: string
          example: A piano.
        difficulty:
          type: string
          enum:
          - easy
          - normal
          - hard
          default: normal
          example: easy
        source:
          type: string
          format: uri
          description: Optional URL backing the riddle.
          example: ''
        key:
          type: string
          example: '7654321'
      required:
      - question
      - answer
      - difficulty
      - key
    RiddleEnvelope:
      type: object
      properties:
        riddle:
          $ref: '#/components/schemas/Riddle'
      required:
      - riddle
  parameters:
    KeyPathParam:
      name: key
      in: path
      required: true
      description: Unique key identifying the resource.
      schema:
        type: string
  responses:
    Error:
      description: Bad request or query argument error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'