{"openapi":"3.1.0","info":{"title":"Bowlalley API","version":"0.1.0","description":"A fully local, hand-curated pin-bowling reference covering ten-pin, duckpin, candlepin and five-pin bowling: rules, variant comparisons, a glossary, lane etiquette, equipment specs, a conceptual scoring explainer, history and beginner tips.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://bowlalley.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/bowlalley/docs"},"termsOfService":"https://connectorbay.com/bowlalley/terms"},"servers":[{"url":"https://bowlalley.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/bowlalley/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/rule_lookup":{"post":{"operationId":"rule_lookup","summary":"Explains one bowling rules topic in depth: foul line, the approach, legal delivery, gutters, lane oil","description":"Explains one bowling rules topic in depth: foul line, the approach, legal delivery, gutters, lane oil\n    patterns, tenth-frame bonus rolls, handicap scoring, deadwood, splits, pin resets/dead pins, ball\n    specifications, bumpers, league formats, and bowling shoe requirements. Use for \"what counts as a foul\n    in bowling\", \"what's a sport pattern vs a house pattern\", \"how does the tenth frame bonus work\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A bowling rules topic or alias.","examples":["foul line","lane oil pattern","approach","tenth frame","handicap","deadwood"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"rule_lookupArguments","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/variant_info":{"post":{"operationId":"variant_info","summary":"Covers one pin-bowling variant's origin, pin count and arrangement, ball description, lane notes,","description":"Covers one pin-bowling variant's origin, pin count and arrangement, ball description, lane notes,\n    scoring system and what distinguishes it — ten-pin, duckpin, candlepin or five-pin. Omit the name to get\n    a short summary of all four. Use for \"how is duckpin different from ten-pin\", \"what is candlepin\n    bowling\", \"who invented five-pin bowling\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A bowling variant name or alias; omit to list all four.","examples":["ten-pin","duckpin","candlepin","five-pin"],"title":"Name"}},"title":"variant_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/term_glossary":{"post":{"operationId":"term_glossary","summary":"Definitions of common bowling terms — strike, spare, turkey, Brooklyn, split, deadwood, pocket,","description":"Definitions of common bowling terms — strike, spare, turkey, Brooklyn, split, deadwood, pocket,\n    handicap, belly band, and more, across all four variants. Use for \"what does turkey mean in bowling\",\n    \"what's a Brooklyn strike\", \"what is deadwood in candlepin\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific bowling term to look up; omit to list all.","title":"Term"}},"title":"term_glossaryArguments","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/etiquette_tip":{"post":{"operationId":"etiquette_tip","summary":"Lane etiquette guidance — bowling shoe requirements, who bowls first on adjacent lanes, keeping the","description":"Lane etiquette guidance — bowling shoe requirements, who bowls first on adjacent lanes, keeping the\n    approach dry, using only your own ball, waiting for the ball return, celebrating without disrupting\n    others, bumper courtesy, scoring disputes, pace of play. Omit the topic to list them all. Use for \"is it\n    rude to use someone else's bowling ball\", \"who goes first if two lanes are ready at once\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A lane etiquette topic to look up; omit to list all.","examples":["shoes","adjacent lanes","ball courtesy","approach"],"title":"Topic"}},"title":"etiquette_tipArguments","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/equipment_overview":{"post":{"operationId":"equipment_overview","summary":"Covers bowling ball specs (weight, size, finger holes) per variant, pin specs per variant, lane","description":"Covers bowling ball specs (weight, size, finger holes) per variant, pin specs per variant, lane\n    dimensions and oil-pattern basics, bowling shoe design, and how pinsetters work (freefall vs. string,\n    plus the human 'pinboy' era). Omit the item for everything. Use for \"how heavy is a bowling ball\", \"how\n    tall is a bowling pin\", \"how does a pinsetter work\", \"why do bowling shoes look like that\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"item":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific equipment item to focus on; omit for the full overview.","examples":["ball","pins","lane","shoes","pinsetter"],"title":"Item"}},"title":"equipment_overviewArguments","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/scoring_explainer":{"post":{"operationId":"scoring_explainer","summary":"Explains the CONCEPTS behind bowling scoring — frame structure, what a strike/spare/open frame is,","description":"Explains the CONCEPTS behind bowling scoring — frame structure, what a strike/spare/open frame is,\n    why the strike and spare bonuses exist, how the tenth frame's bonus-roll allowance works, each variant's\n    perfect-game number (300 for ten-pin/duckpin, 450 for five-pin, never certified in candlepin), and how\n    the four variants' scoring mechanics differ. This is conceptual only — it does NOT accept a roll sequence\n    and does not compute an actual score; use a dedicated bowling score calculator for real frame-by-frame\n    arithmetic. Use for \"how does bowling scoring work\", \"why isn't a game out of 10 pins times 10 frames\",\n    \"what's a perfect game in five-pin bowling\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"scoring_explainerArguments","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/history_note":{"post":{"operationId":"history_note","summary":"An overview and dated timeline of pin-bowling's history — from ancient pin-and-ball games through","description":"An overview and dated timeline of pin-bowling's history — from ancient pin-and-ball games through\n    candlepin's 1880 invention, the American Bowling Congress standardizing ten-pin in 1895, duckpin's early\n    1900s emergence, five-pin's 1909 invention in Toronto, the shift from human pinboys to automatic\n    pinsetters, and the sport's modern governing bodies. Use for \"who invented bowling\", \"when was candlepin\n    bowling invented\", \"history of ten-pin bowling\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"history_noteArguments","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/beginner_tips":{"post":{"operationId":"beginner_tips","summary":"General bowling fundamentals for a new bowler — ball weight, grip, approach consistency, aiming at","description":"General bowling fundamentals for a new bowler — ball weight, grip, approach consistency, aiming at\n    the arrows instead of the pins, targeting the pocket, and more. Returns however many tips you ask for\n    (1-15). Use for \"tips for a bowling beginner\", \"how do I get better at bowling\", \"what should a new\n    bowler focus on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":8,"description":"How many beginner tips to return.","examples":[5,8,15],"maximum":15,"minimum":1,"title":"Count","type":"integer"}},"title":"beginner_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}}}}