{"openapi":"3.1.0","info":{"title":"Fantasy API","version":"0.1.0","description":"A fully local, hand-curated, sport-agnostic fantasy sports reference: how fantasy football, baseball, basketball, hockey and soccer generically work, scoring formats, draft formats, league-structure guidance, a glossary, a format recommender, and beginner tips. Rules/format reference only, not betting or DFS advice.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://fantasy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/fantasy/docs"},"termsOfService":"https://connectorbay.com/fantasy/terms"},"servers":[{"url":"https://fantasy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/fantasy/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/sport_format_info":{"post":{"operationId":"sport_format_info","summary":"Generic fantasy shape for one sport: overview, typical roster positions, common scoring and draft","description":"Generic fantasy shape for one sport: overview, typical roster positions, common scoring and draft\n    styles, season structure, and typical league sizes. Use for \"how does fantasy hockey usually work\",\n    \"what roster spots does fantasy baseball have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sport":{"description":"A sport's name.","examples":["football","baseball","basketball","hockey","soccer"],"minLength":1,"title":"Sport","type":"string"}},"required":["sport"],"title":"sport_format_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/scoring_format_info":{"post":{"operationId":"scoring_format_info","summary":"Full detail on one fantasy scoring format: how it works, and which sports commonly use it. Use for","description":"Full detail on one fantasy scoring format: how it works, and which sports commonly use it. Use for\n    \"how does PPR scoring work\", \"what is rotisserie scoring\", \"what's a best ball league\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A scoring format's name.","examples":["PPR","standard","half-PPR","categories","rotisserie","points league","best ball","salary cap picks"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"scoring_format_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/draft_format_info":{"post":{"operationId":"draft_format_info","summary":"Full detail on one fantasy draft format: how it works, plus its pros and cons. Use for \"what's an","description":"Full detail on one fantasy draft format: how it works, plus its pros and cons. Use for \"what's an\n    auction draft\", \"snake vs linear draft\", \"how does a dynasty league work\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A draft format's name.","examples":["snake","auction","keeper","dynasty","third round reversal","slow draft"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"draft_format_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 fantasy-sports terms — waiver wire, FAAB, handcuff, sleeper, punt strategy,","description":"Definitions of common fantasy-sports terms — waiver wire, FAAB, handcuff, sleeper, punt strategy,\n    ADP, flex, superflex, dynasty, and 50+ more, some sport-specific. Use for \"what does FAAB mean\", \"what's\n    a handcuff\", \"what's the difference between a keeper and a dynasty league\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific 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/league_structure_tip":{"post":{"operationId":"league_structure_tip","summary":"Practical guidance for one league-setup decision: choosing league size, roster size, playoff format,","description":"Practical guidance for one league-setup decision: choosing league size, roster size, playoff format,\n    scoring settings, waiver system, trade deadline, keeper rules, schedule length, tiebreakers, divisions,\n    commissioner duties, or draft prep. Use for \"how many teams should our league have\", \"when should our\n    trade deadline be\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A league-setup topic.","examples":["league size","roster size","playoff format","waiver system","trade deadline","keeper rules","tiebreakers","divisions","commissioner duties","draft prep"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"league_structure_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/find_format_for_group":{"post":{"operationId":"find_format_for_group","summary":"Recommends a scoring format and draft format for a group, given its size and experience level, with","description":"Recommends a scoring format and draft format for a group, given its size and experience level, with\n    a short rationale. A deterministic recommendation, not a data lookup. Use for \"what format should a\n    10-team beginner league use\", \"best draft type for 6 experienced friends\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"league_size":{"description":"Number of teams/owners in the group.","examples":[8,10,12],"maximum":30,"minimum":2,"title":"League Size","type":"integer"},"experience_level":{"description":"The group's self-described fantasy experience.","examples":["beginner","intermediate","expert"],"minLength":1,"title":"Experience Level","type":"string"}},"required":["league_size","experience_level"],"title":"find_format_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":"An overview of everything this reference covers — sports, scoring formats, draft formats, glossary","description":"An overview of everything this reference covers — sports, scoring formats, draft formats, glossary\n    terms, and league-structure topics — each with its count. Use for \"what do you cover\", \"what sports do\n    you know about\".","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/beginner_tips":{"post":{"operationId":"beginner_tips","summary":"A ranked shortlist of practical tips for someone brand new to fantasy sports, most essential first.","description":"A ranked shortlist of practical tips for someone brand new to fantasy sports, most essential first.\n    Use for \"tips for a first-time fantasy player\", \"what should a beginner know before their draft\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many tips to return.","maximum":12,"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}}}}