Dad Jokes (icanhazdadjoke) Integrations API

Slack and Discord integration endpoints

OpenAPI Specification

dad-jokes-integrations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: icanhazdadjoke Integrations API
  description: Free REST API providing access to the internet's largest selection of dad jokes. Supports random joke retrieval, joke lookup by ID, keyword search, Slack slash command integration, and Discord bot support. No authentication required.
  version: 1.0.0
  contact:
    url: https://icanhazdadjoke.com/api
  license:
    name: Free to use
servers:
- url: https://icanhazdadjoke.com
  description: Production server
tags:
- name: Integrations
  description: Slack and Discord integration endpoints
paths:
  /slack:
    get:
      operationId: getRandomJokeForSlack
      summary: Fetch a random joke formatted for Slack
      description: Returns a random dad joke formatted as a Slack message payload, suitable for use as a Slack slash command response.
      tags:
      - Integrations
      responses:
        '200':
          description: Slack-formatted joke response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlackResponse'
              example:
                attachments:
                - fallback: My dog used to chase people on a bike a lot. It got so bad I had to take his bike away.
                  footer: icanhazdadjoke.com | <https://icanhazdadjoke.com/j/R7UfaahVfFd>
                  text: My dog used to chase people on a bike a lot. It got so bad I had to take his bike away.
                response_type: in_channel
                username: icanhazdadjoke
components:
  schemas:
    SlackAttachment:
      type: object
      properties:
        fallback:
          type: string
          description: Plain text fallback for the attachment
        footer:
          type: string
          description: Footer text with attribution
        text:
          type: string
          description: The joke text
    SlackResponse:
      type: object
      properties:
        attachments:
          type: array
          description: Slack message attachments
          items:
            $ref: '#/components/schemas/SlackAttachment'
        response_type:
          type: string
          description: Slack response type
          example: in_channel
        username:
          type: string
          description: Bot username displayed in Slack
          example: icanhazdadjoke