{"openapi":"3.1.0","info":{"title":"Icebreaker API","version":"0.1.0","description":"A fully local, hand-curated icebreaker and team-building game reference: 14 original activities across classroom, office, camp, party and virtual-meeting settings, each with group-size range, time estimate, materials, how-to-run steps, variations and facilitation tips, plus theme-level getting-to-know-you prompt categories, setting/group-size/time finders and category browsing.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://icebreaker.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/icebreaker/docs"},"termsOfService":"https://connectorbay.com/icebreaker/terms"},"servers":[{"url":"https://icebreaker.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/icebreaker/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/activity_info":{"post":{"operationId":"activity_info","summary":"Full detail for one icebreaker/team-building activity: category, settings it suits, group-size range,","description":"Full detail for one icebreaker/team-building activity: category, settings it suits, group-size range,\n    time estimate, materials, numbered how-to-run steps, variations, and facilitation tips. Use for \"how do\n    you play human bingo\", \"how does the human knot work\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"An activity's name or alias.","examples":["Two Truths and a Lie","Human Knot","Fruit Basket Upset"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"activity_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/activity_by_setting":{"post":{"operationId":"activity_by_setting","summary":"Every activity tagged as suited to one setting: classroom, office, camp, party, or virtual-meeting.","description":"Every activity tagged as suited to one setting: classroom, office, camp, party, or virtual-meeting.\n    Use for \"icebreakers for a virtual meeting\", \"what works well at camp\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"setting":{"description":"A setting.","examples":["classroom","office","camp","party","virtual-meeting"],"minLength":1,"title":"Setting","type":"string"}},"required":["setting"],"title":"activity_by_settingArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/activity_by_group_size":{"post":{"operationId":"activity_by_group_size","summary":"Every activity whose group-size range fits a given number of participants (or a size band like","description":"Every activity whose group-size range fits a given number of participants (or a size band like\n    \"small\"/\"medium\"/\"large\"). Use for \"something for a group of 8\", \"icebreaker for a large team\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"size":{"description":"Number of participants (e.g. '12'), or a size band: small, medium, large.","examples":["12","small","30"],"minLength":1,"title":"Size","type":"string"}},"required":["size"],"title":"activity_by_group_sizeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/prompt_category":{"post":{"operationId":"prompt_category","summary":"Theme-level example \"would you rather\" / getting-to-know-you prompts — childhood, work and career,","description":"Theme-level example \"would you rather\" / getting-to-know-you prompts — childhood, work and career,\n    travel, hot takes, desert-island style, speed-networking quick-fire, and more. A representative sample of\n    each theme, not an exhaustive prompt database. Use for \"would you rather questions for a work event\",\n    \"desert island discussion questions\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"theme":{"description":"A prompt theme.","examples":["would you rather light","desert island style","work and career","hot takes"],"minLength":1,"title":"Theme","type":"string"}},"required":["theme"],"title":"prompt_categoryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/time_estimate":{"post":{"operationId":"time_estimate","summary":"Just an activity's expected running-time range in minutes, plus a note on what can stretch it longer","description":"Just an activity's expected running-time range in minutes, plus a note on what can stretch it longer\n    or shorter. Use for \"how long does human bingo take\", \"quick 10-minute icebreaker options\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"An activity's name or alias.","minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"time_estimateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/find_activity_for_group":{"post":{"operationId":"find_activity_for_group","summary":"Combines an optional group size, setting, and time budget into a single ranked list of activities that","description":"Combines an optional group size, setting, and time budget into a single ranked list of activities that\n    fit all the filters given (matching more filters ranks higher). Provide at least one filter. Use for \"20\n    minute icebreaker for 25 people in an office\", \"quick activity for a virtual meeting\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_size":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Number of participants, or a size band (small/medium/large).","examples":["15","small"],"title":"Group Size"},"setting":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A setting.","examples":["classroom","office","camp","party","virtual-meeting"],"title":"Setting"},"time_available":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Minutes available.","examples":["15","30"],"title":"Time Available"}},"title":"find_activity_for_groupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/category_list":{"post":{"operationId":"category_list","summary":"Every activity category with how many activities are in it, plus the list of available prompt themes.","description":"Every activity category with how many activities are in it, plus the list of available prompt themes.\n    Use for \"what kinds of icebreakers do you have\", \"what prompt themes are available\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"category_listArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/facilitation_tips":{"post":{"operationId":"facilitation_tips","summary":"An activity's specific facilitation tips plus general facilitation principles, or just the general","description":"An activity's specific facilitation tips plus general facilitation principles, or just the general\n    principles if no activity is named. Use for \"tips for running human bingo\", \"general icebreaker\n    facilitation advice\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"An activity's name or alias; omit for general facilitation principles.","title":"Name"}},"title":"facilitation_tipsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}