{"openapi":"3.1.0","info":{"title":"Esport API","version":"0.1.0","description":"A fully local, hand-curated esports reference: major competitive genres, tournament formats, team roles/playstyle archetypes by genre, common terminology, and verified-or-hedged history milestones, plus a tournament-format recommender by participant count and beginner tips.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://esport.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/esport/docs"},"termsOfService":"https://connectorbay.com/esport/terms"},"servers":[{"url":"https://esport.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/esport/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/genre_info":{"post":{"operationId":"genre_info","summary":"Full detail for one competitive esports genre: a generic description, typical team size, match structure,","description":"Full detail for one competitive esports genre: a generic description, typical team size, match structure,\n    key skills, common tournament formats, and a few real published titles that exemplify it. Use for \"what is a\n    MOBA\", \"how do battle royale tournaments work\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A competitive genre's name or alias.","examples":["MOBA","FPS","battle royale","fighting games","RTS"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"genre_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/tournament_format_info":{"post":{"operationId":"tournament_format_info","summary":"Full detail for one tournament format: how it works, pros/cons, ideal participant range, seeding notes and","description":"Full detail for one tournament format: how it works, pros/cons, ideal participant range, seeding notes and\n    real-world usage. Use for \"how does double elimination work\", \"what's the GSL group format\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A tournament format's name or alias.","examples":["single elimination","double elimination","Swiss system","group stage"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"tournament_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/role_info":{"post":{"operationId":"role_info","summary":"Explains one team role or playstyle archetype within a genre, e.g. jungler in MOBA, in-game leader (IGL)","description":"Explains one team role or playstyle archetype within a genre, e.g. jungler in MOBA, in-game leader (IGL)\n    in FPS, zoner in fighting games. Fighting games and RTS are primarily individual (1v1), so most of their\n    entries are playstyle archetypes rather than formal team roles — role_info notes this where it applies. Use\n    for \"what does a jungler do\", \"what's an IGL\", \"what's a zoner in fighting games\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"genre":{"description":"A competitive genre's name or alias.","examples":["MOBA","FPS","fighting games"],"minLength":1,"title":"Genre","type":"string"},"role":{"description":"A team role or playstyle archetype's name or alias within that genre.","examples":["jungler","IGL","zoner","support"],"minLength":1,"title":"Role","type":"string"}},"required":["genre","role"],"title":"role_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 esports terminology — frag, gank, meta, patch, scrim, LAN, tilt, seed, bracket,","description":"Definitions of common esports terminology — frag, gank, meta, patch, scrim, LAN, tilt, seed, bracket,\n    best-of, draft/pick-ban, org, franchising, third-partying, and more. Use for \"what does 'gank' mean\", \"what's\n    the difference between an org and a roster\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific esports 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/history_milestone":{"post":{"operationId":"history_milestone","summary":"Looks up esports history milestones by era or topic keyword — origins in the 1970s-80s, South Korea's","description":"Looks up esports history milestones by era or topic keyword — origins in the 1970s-80s, South Korea's\n    StarCraft boom, early leagues (CPL, WCG), MOBA-era franchised leagues, crowdfunded prize pools, the Overwatch\n    League, the Fortnite World Cup, streaming platforms, Olympic recognition, collegiate esports, and mobile\n    esports growth. Historical claims are verified where possible and phrased qualitatively where genuinely\n    uncertain. Use for \"when did esports become popular in Korea\", \"how did The International's prize pool get so\n    big\", \"has esports been in the Olympics\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"era_or_topic":{"description":"An era, year, or topic keyword.","examples":["origins","Korea","The International","Fortnite World Cup","Olympics","streaming"],"minLength":1,"title":"Era Or Topic","type":"string"}},"required":["era_or_topic"],"title":"history_milestoneArguments","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_event_size":{"post":{"operationId":"find_format_for_event_size","summary":"Recommends which tournament format(s) best fit a given number of participants, with brief reasoning, plus","description":"Recommends which tournament format(s) best fit a given number of participants, with brief reasoning, plus\n    every format's raw fit against its own ideal participant range. Use for \"what tournament format should I use\n    for a 24-team event\", \"best bracket format for 6 players\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"participant_count":{"description":"How many players or teams will take part.","examples":[8,16,32,64,256],"maximum":100000,"minimum":2,"title":"Participant Count","type":"integer"}},"required":["participant_count"],"title":"find_format_for_event_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/category_list":{"post":{"operationId":"category_list","summary":"An overview of everything this reference covers: every genre with its role count, every tournament format,","description":"An overview of everything this reference covers: every genre with its role count, every tournament format,\n    and the glossary/history/beginner-tip counts. Use for \"what genres of esports do you cover\", \"what's in this\n    reference\".","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 getting into competitive/esports play, from most to least","description":"A ranked shortlist of practical tips for someone getting into competitive/esports play, from most to least\n    essential. Use for \"how do I get better at competitive gaming\", \"tips for a beginner esports player\".","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}}}}