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
| Action | What it does |
|---|---|
| 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. |
| 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. |
| 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. |
| Get a random activity | Get one thing to do, chosen at random: the answer to 'I'm bored'. |
| Get an activity | Look up one activity by its key: the identifier every other action returns beside each activity it finds. |
| 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. |
| 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. |
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 type
typetext - 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). - Participants
participantstext - 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 only
kid_friendlytrue/false - Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
- Maximum price
max_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 by
sorttext - 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. - Limit
limitnumber - 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
activitieslistcountnumberfiltersobjectsorttexttotal_countnumbertruncatedtrue/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 size
participantsnumberRequired - 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 activities
include_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 type
typetext - 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 only
kid_friendlytrue/false - Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
- Maximum price
max_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 by
sorttext - 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. - Limit
limitnumber - 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
activitieslistcountnumberfiltersobjectgroup_sizes_searchedlistinclude_smallertrue/falseparticipant_countslistparticipantsnumberrequests_madenumbersorttexttotal_countnumbertruncatedtrue/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 key
keytextRequired - 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 people
same_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 only
kid_friendlytrue/false - Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
- Maximum price
max_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 by
sorttext - 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. - Limit
limitnumber - 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
activitieslistbased_onobjectcountnumbermatched_onobjectsorttexttotal_countnumbertruncatedtrue/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 type
typetext - 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). - Participants
participantstext - 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 only
kid_friendlytrue/false - Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
- Maximum price
max_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
accessibilitytextactivitytextavailabilitynumberdurationtexthas_linktrue/falseis_freetrue/falsekeytextkidFriendlytrue/falsekid_friendlytrue/falselinktextmatched_countnumberparticipantsnumberpricenumberprice_leveltextsourcetexttypetext
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 key
keytextRequired - 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
accessibilitytextactivitytextavailabilitynumberdurationtexthas_linktrue/falseis_freetrue/falsekeytextkidFriendlytrue/falsekid_friendlytrue/falselinktextparticipantsnumberpricenumberprice_leveltexttypetext
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
- Participants
participantstext - 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_countnumberparticipantsnumberrequests_madenumbertype_countnumbertypeslist
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 ideas
countnumber - 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 types
typeslist - 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). - Participants
participantstext - 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 only
kid_friendlytrue/false - Turn on to keep only the activities the API marks as kid friendly. Left off, everything is considered.
- Maximum price
max_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
activitieslistcountnumberfiltersobjectrequested_countnumberrequests_madenumbertypes_searchedlisttypes_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"
]
}