Bored API · Schema

Activity

An activity suggestion returned by the Bored API

ActivitiesBoredomRandomEntertainmentLifestyleFree

Properties

Name Type Description
activity string Human-readable description of the activity
availability number Availability score from 0.0 (hard to access) to 1.0 (universally available)
type object
participants object
price number Relative cost from 0.0 (free) to 1.0 (expensive)
accessibility string Human-readable description of accessibility level
duration string Rough time estimate for completing the activity
kidFriendly boolean Whether the activity is appropriate for children
link string Optional URL with more information about the activity; may be an empty string
key string Unique numeric identifier for the activity
View JSON Schema on GitHub

JSON Schema

activity.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/bored-api/main/json-schema/activity.json",
  "title": "Activity",
  "description": "An activity suggestion returned by the Bored API",
  "type": "object",
  "required": [
    "activity",
    "availability",
    "type",
    "participants",
    "price",
    "accessibility",
    "duration",
    "kidFriendly",
    "link",
    "key"
  ],
  "properties": {
    "activity": {
      "type": "string",
      "description": "Human-readable description of the activity",
      "minLength": 1,
      "examples": ["Learn Express.js", "Go for a walk", "Cook a new recipe"]
    },
    "availability": {
      "type": "number",
      "description": "Availability score from 0.0 (hard to access) to 1.0 (universally available)",
      "minimum": 0,
      "maximum": 1,
      "examples": [0.0, 0.2, 0.5, 0.8, 1.0]
    },
    "type": {
      "$ref": "#/$defs/ActivityType"
    },
    "participants": {
      "$ref": "#/$defs/ParticipantCount"
    },
    "price": {
      "type": "number",
      "description": "Relative cost from 0.0 (free) to 1.0 (expensive)",
      "minimum": 0,
      "maximum": 1,
      "examples": [0, 0.1, 0.3, 0.8, 1.0]
    },
    "accessibility": {
      "type": "string",
      "description": "Human-readable description of accessibility level",
      "examples": [
        "Few challenges",
        "Some challenges",
        "Major challenges"
      ]
    },
    "duration": {
      "type": "string",
      "description": "Rough time estimate for completing the activity",
      "enum": ["minutes", "hours", "days", "weeks"],
      "examples": ["minutes", "hours"]
    },
    "kidFriendly": {
      "type": "boolean",
      "description": "Whether the activity is appropriate for children",
      "examples": [true, false]
    },
    "link": {
      "type": "string",
      "description": "Optional URL with more information about the activity; may be an empty string",
      "examples": ["https://expressjs.com/", ""]
    },
    "key": {
      "type": "string",
      "description": "Unique numeric identifier for the activity",
      "pattern": "^[0-9]+$",
      "examples": ["3943506", "1638604"]
    }
  },
  "additionalProperties": false,
  "$defs": {
    "ActivityType": {
      "type": "string",
      "description": "Category of the activity",
      "enum": [
        "education",
        "recreational",
        "social",
        "charity",
        "cooking",
        "relaxation",
        "busywork"
      ]
    },
    "ParticipantCount": {
      "type": "integer",
      "description": "Number of people needed for the activity",
      "enum": [1, 2, 3, 4, 5, 6, 8]
    }
  }
}