Bored API

App · Misc References · 7 actions

Find something to do with the keyless Bored API. Draw a random activity, browse them by type and group size, pull a shortlist for four people or a mix of ideas across different kinds of afternoon, find more like one that landed well, and look any of them up again by key. Every activity says how many people it takes, roughly what it costs, how long it lasts and whether it suits children. No account or API key is required.

Actions

ActionWhat it does
Find activitiesBrowse the activities that match a type and a number of participants, narrowed further by kid friendly or a price ceiling, ordered how you like and cut to a limit.
Find activities for a groupFind everything a group of a given size can do: the activities for exactly that many people and, unless you turn it off, the ones a smaller group could do together.
Find similar activitiesFind more activities like one you already have: give it an activity's key and it fetches that activity, then returns the others of the same type (and, unless you turn it off, for the same number of people.
Get a random activityGet one thing to do, chosen at random: the answer to 'I'm bored'.
Get an activityLook up one activity by its key: the identifier every other action returns beside each activity it finds.
List activity typesSee what the catalogue holds, type by type: how many activities there are of each kind, how many are free, how many suit children, the range of group sizes they take and an example with its key.
Suggest a mix of activitiesGet several ideas at once, deliberately spread across different kinds of activity, so a menu of three is a lesson, a game and something to cook rather than three variations of the same afternoon.

Find activities

Browse the activities that match a type and a number of participants, narrowed further by kid friendly or a price ceiling, ordered how you like and cut to a limit. Use it to put a shortlist in front of someone rather than a single suggestion. The answer says how many matched in total, so a limited list never reads as a complete one.

Inputs

Activity typetypetext
Only activities of this kind. Leave empty to draw from every type.One of: education (Education: learn something), recreational (Recreational: play or make something), social (Social: with other people), charity (Charity: help someone out), cooking (Cooking: make something to eat), relaxation (Relaxation: wind down), busywork (Busywork: a job worth getting done).
Participantsparticipantstext
Only activities for exactly this many people. Leave empty for any number. The catalogue has nothing for exactly seven people, so seven is not offered.One of: 1 (1 person), 2 (2 people), 3 (3 people), 4 (4 people), 5 (5 people), 6 (6 people), 8 (8 people).
Kid friendly onlykid_friendlytrue/false
Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
Maximum pricemax_pricenumber
Only activities at or below this price, as an index from 0 (free) to 1 (expensive): the API rates cost relatively rather than in money. Set 0 for free activities only. Leave empty for any price.From 0 to 1.
Sort bysorttext
How to order the activities that come back.One of: default (The order the API returns them in (default)), name (Activity name, A to Z), price (Cheapest first), participants (Fewest people first), availability (Most available first). Default: default.
Limitlimitnumber
How many activities to return, from 1 to 100. The answer always says how many matched in total, so a limited list never reads as a complete one. Defaults to 25.From 1 to 100. Default: 25.

Outputs

activitieslist
countnumber
filtersobject
sorttext
total_countnumber
truncatedtrue/false
Example output
{
  "activities": [
    {
      "accessibility": "Few to no challenges",
      "activity": "Learn Express.js",
      "availability": 0.25,
      "duration": "hours",
      "has_link": true,
      "is_free": false,
      "key": "3943506",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "https://expressjs.com/",
      "participants": 1,
      "price": 0.1,
      "price_level": "low",
      "type": "education"
    },
    {
      "accessibility": "Some challenges",
      "activity": "Learn React.js",
      "availability": 0.5,
      "duration": "hours",
      "has_link": true,
      "is_free": false,
      "key": "7890123",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "https://reactjs.org/",
      "participants": 1,
      "price": 0.2,
      "price_level": "low",
      "type": "education"
    }
  ],
  "count": 2,
  "filters": {
    "kid_friendly": null,
    "max_price": null,
    "participants": 1,
    "type": "education"
  },
  "sort": "default",
  "total_count": 2,
  "truncated": false
}

Find activities for a group

Find everything a group of a given size can do: the activities for exactly that many people and, unless you turn it off, the ones a smaller group could do together. The API matches a participant count exactly, so this is the action that answers 'there are four of us, what's on?' in one step. The answer breaks the matches down by how many people each one takes.

Inputs

Group sizeparticipantsnumberRequired
How many people there are, from 1 to 8. Nothing in the catalogue is for exactly seven people, so a group of seven is offered the activities for six or fewer.From 1 to 8.
Include smaller activitiesinclude_smallertrue/false
On by default: also return the activities a smaller group could do, since four people can play a game meant for two. Turn it off to see only the activities for exactly this many people.Default: true.
Activity typetypetext
Only activities of this kind. Leave empty to draw from every type.One of: education (Education: learn something), recreational (Recreational: play or make something), social (Social: with other people), charity (Charity: help someone out), cooking (Cooking: make something to eat), relaxation (Relaxation: wind down), busywork (Busywork: a job worth getting done).
Kid friendly onlykid_friendlytrue/false
Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
Maximum pricemax_pricenumber
Only activities at or below this price, as an index from 0 (free) to 1 (expensive): the API rates cost relatively rather than in money. Set 0 for free activities only. Leave empty for any price.From 0 to 1.
Sort bysorttext
How to order the activities that come back.One of: default (The order the API returns them in (default)), name (Activity name, A to Z), price (Cheapest first), participants (Fewest people first), availability (Most available first). Default: default.
Limitlimitnumber
How many activities to return, from 1 to 100. The answer always says how many matched in total, so a limited list never reads as a complete one. Defaults to 25.From 1 to 100. Default: 25.

Outputs

activitieslist
countnumber
filtersobject
group_sizes_searchedlist
include_smallertrue/false
participant_countslist
participantsnumber
requests_madenumber
sorttext
total_countnumber
truncatedtrue/false
Example output
{
  "activities": [
    {
      "accessibility": "Few to no challenges",
      "activity": "Learn how to fold a paper crane",
      "availability": 0.15,
      "duration": "minutes",
      "has_link": false,
      "is_free": true,
      "key": "3468810",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "",
      "participants": 1,
      "price": 0.0,
      "price_level": "free",
      "type": "recreational"
    },
    {
      "accessibility": "Minor challenges",
      "activity": "Bake a loaf of bread from scratch",
      "availability": 0.3,
      "duration": "hours",
      "has_link": false,
      "is_free": false,
      "key": "8482334",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "",
      "participants": 2,
      "price": 0.15,
      "price_level": "low",
      "type": "cooking"
    }
  ],
  "count": 2,
  "filters": {
    "kid_friendly": null,
    "max_price": null,
    "type": null
  },
  "group_sizes_searched": [
    1,
    2
  ],
  "include_smaller": true,
  "participant_counts": [
    {
      "count": 1,
      "participants": 1
    },
    {
      "count": 1,
      "participants": 2
    }
  ],
  "participants": 2,
  "requests_made": 2,
  "sort": "default",
  "total_count": 2,
  "truncated": false
}

Find similar activities

Find more activities like one you already have: give it an activity's key and it fetches that activity, then returns the others of the same type (and, unless you turn it off, for the same number of people. The original is never in the answer, so this is the 'something else, then' step to run when a suggestion doesn't land.

Inputs

Activity keykeytextRequired
The key of the activity, which is the short identifier the API gives each one. Every action here returns the key of each activity it found, and every step summary prints it.
Same number of peoplesame_participantstrue/false
On by default: only activities for the same number of people as the one you named. Turn it off to see everything of that type whatever the group size.Default: true.
Kid friendly onlykid_friendlytrue/false
Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
Maximum pricemax_pricenumber
Only activities at or below this price, as an index from 0 (free) to 1 (expensive): the API rates cost relatively rather than in money. Set 0 for free activities only. Leave empty for any price.From 0 to 1.
Sort bysorttext
How to order the activities that come back.One of: default (The order the API returns them in (default)), name (Activity name, A to Z), price (Cheapest first), participants (Fewest people first), availability (Most available first). Default: default.
Limitlimitnumber
How many activities to return, from 1 to 100. The answer always says how many matched in total, so a limited list never reads as a complete one. Defaults to 25.From 1 to 100. Default: 25.

Outputs

activitieslist
based_onobject
countnumber
matched_onobject
sorttext
total_countnumber
truncatedtrue/false
Example output
{
  "activities": [
    {
      "accessibility": "Some challenges",
      "activity": "Learn React.js",
      "availability": 0.5,
      "duration": "hours",
      "has_link": true,
      "is_free": false,
      "key": "7890123",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "https://reactjs.org/",
      "participants": 1,
      "price": 0.2,
      "price_level": "low",
      "type": "education"
    }
  ],
  "based_on": {
    "accessibility": "Few to no challenges",
    "activity": "Learn Express.js",
    "availability": 0.25,
    "duration": "hours",
    "has_link": true,
    "is_free": false,
    "key": "3943506",
    "kidFriendly": true,
    "kid_friendly": true,
    "link": "https://expressjs.com/",
    "participants": 1,
    "price": 0.1,
    "price_level": "low",
    "type": "education"
  },
  "count": 1,
  "matched_on": {
    "participants": 1,
    "type": "education"
  },
  "sort": "default",
  "total_count": 1,
  "truncated": false
}

Get a random activity

Get one thing to do, chosen at random: the answer to 'I'm bored'. Comes back with what it is, what kind of activity it is, how many people it takes, roughly what it costs, how long it lasts, whether it suits children and a link to get started where there is one. Narrow it with a type, a number of participants, kid friendly or a price ceiling and the pick is made from the activities that match.

Inputs

Activity typetypetext
Only activities of this kind. Leave empty to draw from every type.One of: education (Education: learn something), recreational (Recreational: play or make something), social (Social: with other people), charity (Charity: help someone out), cooking (Cooking: make something to eat), relaxation (Relaxation: wind down), busywork (Busywork: a job worth getting done).
Participantsparticipantstext
Only activities for exactly this many people. Leave empty for any number. The catalogue has nothing for exactly seven people, so seven is not offered.One of: 1 (1 person), 2 (2 people), 3 (3 people), 4 (4 people), 5 (5 people), 6 (6 people), 8 (8 people).
Kid friendly onlykid_friendlytrue/false
Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
Maximum pricemax_pricenumber
Only activities at or below this price, as an index from 0 (free) to 1 (expensive): the API rates cost relatively rather than in money. Set 0 for free activities only. Leave empty for any price.From 0 to 1.

Outputs

accessibilitytext
activitytext
availabilitynumber
durationtext
has_linktrue/false
is_freetrue/false
keytext
kidFriendlytrue/false
kid_friendlytrue/false
linktext
matched_countnumber
participantsnumber
pricenumber
price_leveltext
sourcetext
typetext
Example output
{
  "accessibility": "Few to no challenges",
  "activity": "Learn Express.js",
  "availability": 0.25,
  "duration": "hours",
  "has_link": true,
  "is_free": false,
  "key": "3943506",
  "kidFriendly": true,
  "kid_friendly": true,
  "link": "https://expressjs.com/",
  "matched_count": null,
  "participants": 1,
  "price": 0.1,
  "price_level": "low",
  "source": "random",
  "type": "education"
}

Get an activity

Look up one activity by its key: the identifier every other action returns beside each activity it finds. Use it to read a suggestion back later: store the key when you offer someone an activity, and fetch the details again when they say yes.

Inputs

Activity keykeytextRequired
The key of the activity, which is the short identifier the API gives each one. Every action here returns the key of each activity it found, and every step summary prints it.

Outputs

accessibilitytext
activitytext
availabilitynumber
durationtext
has_linktrue/false
is_freetrue/false
keytext
kidFriendlytrue/false
kid_friendlytrue/false
linktext
participantsnumber
pricenumber
price_leveltext
typetext
Example output
{
  "accessibility": "Few to no challenges",
  "activity": "Learn Express.js",
  "availability": 0.25,
  "duration": "hours",
  "has_link": true,
  "is_free": false,
  "key": "3943506",
  "kidFriendly": true,
  "kid_friendly": true,
  "link": "https://expressjs.com/",
  "participants": 1,
  "price": 0.1,
  "price_level": "low",
  "type": "education"
}

List activity types

See what the catalogue holds, type by type: how many activities there are of each kind, how many are free, how many suit children, the range of group sizes they take and an example with its key. Run it once to see what is worth filtering for before spending requests on the details. Costs seven requests, one per type.

Inputs

Participantsparticipantstext
Only activities for exactly this many people. Leave empty for any number. The catalogue has nothing for exactly seven people, so seven is not offered.One of: 1 (1 person), 2 (2 people), 3 (3 people), 4 (4 people), 5 (5 people), 6 (6 people), 8 (8 people).

Outputs

activity_countnumber
participantsnumber
requests_madenumber
type_countnumber
typeslist
Example output
{
  "activity_count": 61,
  "participants": null,
  "requests_made": 7,
  "type_count": 7,
  "types": [
    {
      "count": 12,
      "example_activity": "Learn Express.js",
      "example_key": "3943506",
      "free_count": 5,
      "kid_friendly_count": 11,
      "max_participants": 2,
      "min_participants": 1,
      "type": "education"
    },
    {
      "count": 9,
      "example_activity": "Learn how to fold a paper crane",
      "example_key": "3468810",
      "free_count": 6,
      "kid_friendly_count": 9,
      "max_participants": 4,
      "min_participants": 1,
      "type": "recreational"
    },
    {
      "count": 14,
      "example_activity": "Have a football scrimmage with some friends",
      "example_key": "1128631",
      "free_count": 8,
      "kid_friendly_count": 12,
      "max_participants": 8,
      "min_participants": 2,
      "type": "social"
    },
    {
      "count": 6,
      "example_activity": "Volunteer at a local library",
      "example_key": "9187391",
      "free_count": 6,
      "kid_friendly_count": 6,
      "max_participants": 4,
      "min_participants": 1,
      "type": "charity"
    },
    {
      "count": 7,
      "example_activity": "Bake a loaf of bread from scratch",
      "example_key": "8482334",
      "free_count": 1,
      "kid_friendly_count": 7,
      "max_participants": 4,
      "min_participants": 1,
      "type": "cooking"
    },
    {
      "count": 8,
      "example_activity": "Take a nap",
      "example_key": "8562860",
      "free_count": 7,
      "kid_friendly_count": 8,
      "max_participants": 2,
      "min_participants": 1,
      "type": "relaxation"
    },
    {
      "count": 5,
      "example_activity": "Organize your pantry",
      "example_key": "7688595",
      "free_count": 5,
      "kid_friendly_count": 5,
      "max_participants": 2,
      "min_participants": 1,
      "type": "busywork"
    }
  ]
}

Suggest a mix of activities

Get several ideas at once, deliberately spread across different kinds of activity, so a menu of three is a lesson, a game and something to cook rather than three variations of the same afternoon. Each type is drawn from at random, so the same request twice gives a different menu. Costs one request per type considered, at most seven.

Inputs

How many ideascountnumber
How many activities to suggest, from 1 to 10. Each comes from a different type until every type has been used once. Defaults to 3.From 1 to 10. Default: 3.
Activity typestypeslist
Which kinds of activity to draw from. Choose none to consider all seven. Each type chosen costs one request, so picking a few is quicker than picking all.One or more of: education (Education: learn something), recreational (Recreational: play or make something), social (Social: with other people), charity (Charity: help someone out), cooking (Cooking: make something to eat), relaxation (Relaxation: wind down), busywork (Busywork: a job worth getting done).
Participantsparticipantstext
Only activities for exactly this many people. Leave empty for any number. The catalogue has nothing for exactly seven people, so seven is not offered.One of: 1 (1 person), 2 (2 people), 3 (3 people), 4 (4 people), 5 (5 people), 6 (6 people), 8 (8 people).
Kid friendly onlykid_friendlytrue/false
Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
Maximum pricemax_pricenumber
Only activities at or below this price, as an index from 0 (free) to 1 (expensive): the API rates cost relatively rather than in money. Set 0 for free activities only. Leave empty for any price.From 0 to 1.

Outputs

activitieslist
countnumber
filtersobject
requested_countnumber
requests_madenumber
types_searchedlist
types_usedlist
Example output
{
  "activities": [
    {
      "accessibility": "Few to no challenges",
      "activity": "Learn Express.js",
      "availability": 0.25,
      "duration": "hours",
      "has_link": true,
      "is_free": false,
      "key": "3943506",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "https://expressjs.com/",
      "participants": 1,
      "price": 0.1,
      "price_level": "low",
      "type": "education"
    },
    {
      "accessibility": "Few to no challenges",
      "activity": "Learn how to fold a paper crane",
      "availability": 0.15,
      "duration": "minutes",
      "has_link": false,
      "is_free": true,
      "key": "3468810",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "",
      "participants": 1,
      "price": 0.0,
      "price_level": "free",
      "type": "recreational"
    },
    {
      "accessibility": "Minor challenges",
      "activity": "Have a football scrimmage with some friends",
      "availability": 0.4,
      "duration": "hours",
      "has_link": false,
      "is_free": true,
      "key": "1128631",
      "kidFriendly": true,
      "kid_friendly": true,
      "link": "",
      "participants": 8,
      "price": 0.0,
      "price_level": "free",
      "type": "social"
    }
  ],
  "count": 3,
  "filters": {
    "kid_friendly": null,
    "max_price": null,
    "participants": null
  },
  "requested_count": 3,
  "requests_made": 7,
  "types_searched": [
    "education",
    "recreational",
    "social",
    "charity",
    "cooking",
    "relaxation",
    "busywork"
  ],
  "types_used": [
    "education",
    "recreational",
    "social"
  ]
}

On this page