{"openapi":"3.1.0","info":{"title":"Curling API","version":"0.1.0","description":"A fully local, hand-curated curling rules, strategy and terminology reference: the playing area and equipment, game structure, gameplay and team positions, special situations (free guard zone, burned stones, power play), a 35+ term glossary, core strategy concepts, scoring mechanics, a side-by-side comparison of play formats, a history overview, and curated beginner tips.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://curling.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/curling/docs"},"termsOfService":"https://connectorbay.com/curling/terms"},"servers":[{"url":"https://curling.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/curling/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":"Full detail for one curling rule or playing-area topic: category, a plain-language summary, and a numbered","description":"Full detail for one curling rule or playing-area topic: category, a plain-language summary, and a numbered\n    explanation. Covers the sheet, house, button, hog/tee/back/centre lines, the hack, free guard zone, burned\n    stones, hammer, ends, blank/extra ends, conceding, delivery, sweeping, team positions, measuring, and the\n    mixed doubles power play. Use for \"what's the free guard zone\", \"what happens on a hog line violation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A curling rule or playing-area topic, or an alias.","examples":["the house","hammer","hog line","free guard zone","sweeping"],"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/term_glossary":{"post":{"operationId":"term_glossary","summary":"Definitions of common curling terms — weight, line, turn/handle, in-turn/out-turn, biter, bonspiel,","description":"Definitions of common curling terms — weight, line, turn/handle, in-turn/out-turn, biter, bonspiel,\n    eight-ender, pebble, slider, gripper, hammer, steal, blank end, curl, and more. Use for \"what's a biter\",\n    \"what does button weight mean\", \"what's the roaring game\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific curling 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/strategy_concept":{"post":{"operationId":"strategy_concept","summary":"Explains one named shot type or strategic concept — guard, draw shot, takeout, freeze, raise, come-around,","description":"Explains one named shot type or strategic concept — guard, draw shot, takeout, freeze, raise, come-around,\n    peel, hit and roll, tap back, tick shot, corner freeze, hammer management, stealing an end — including when to\n    use it and related concepts. Use for \"what's a draw shot\", \"when should I play a guard vs a takeout\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A shot type or strategic concept, or an alias.","examples":["guard","takeout","draw","freeze","come-around","hammer management"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"strategy_conceptArguments","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_summary":{"post":{"operationId":"scoring_summary","summary":"How curling scoring works: only one team scores per end, how many points, when a measure is needed, how","description":"How curling scoring works: only one team scores per end, how many points, when a measure is needed, how\n    the hammer changes hands, and what an eight-ender is. Use for \"how is curling scored\", \"what's an eight-ender\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"scoring_summaryArguments","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":"Curling equipment: the granite stone, broom/brush, slider and gripper shoes/soles, the delivery","description":"Curling equipment: the granite stone, broom/brush, slider and gripper shoes/soles, the delivery\n    stick/stabilizer, and the hack. Use for \"what's a curling stone made of\", \"what's a delivery stick\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"item":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific piece of equipment to look up; omit to list all.","examples":["stone","broom","slider","delivery stick"],"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/format_comparison":{"post":{"operationId":"format_comparison","summary":"Side-by-side comparison of two named curling formats — traditional fours, mixed doubles, wheelchair","description":"Side-by-side comparison of two named curling formats — traditional fours, mixed doubles, wheelchair\n    curling, club/short format — covering players per team, stones thrown, ends, team roles and notable rules.\n    Use for \"traditional curling vs mixed doubles\", \"how is wheelchair curling different\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"format_a":{"description":"First play format to compare.","examples":["traditional fours","mixed doubles","wheelchair curling"],"minLength":1,"title":"Format A","type":"string"},"format_b":{"description":"Second play format to compare.","examples":["mixed doubles","club curling"],"minLength":1,"title":"Format B","type":"string"}},"required":["format_a","format_b"],"title":"format_comparisonArguments","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":"A short history of curling: its Scottish origins, spread abroad (especially to Canada), the shift to","description":"A short history of curling: its Scottish origins, spread abroad (especially to Canada), the shift to\n    indoor ice, and its path to becoming a full Olympic medal sport (including mixed doubles). Dates before the\n    modern era are phrased qualitatively where the exact year isn't firmly established. Use for \"when did curling\n    become an Olympic sport\", \"where does curling come from\".","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":"A curated shortlist of tips for someone new to curling, ordered from most to least essential. Use for","description":"A curated shortlist of tips for someone new to curling, ordered from most to least essential. Use for\n    \"what should a beginner curler focus on\", \"tips for my first time curling\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many tips to return.","maximum":10,"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}}}}