{"openapi":"3.1.0","info":{"title":"Challonge (BYOK) API","version":"0.1.0","description":"Challonge (BYOK) lets an AI assistant read your own Challonge data through the Challonge API with a key you supply (Challonge API v1 key). Read-only: 6 tools (get_me, list_tournaments, get_tournament, list_participants, list_matches, list_stations). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-challonge.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-challonge/docs"},"termsOfService":"https://connectorbay.com/byok-challonge/terms"},"servers":[{"url":"https://byok-challonge.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-challonge/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_me":{"post":{"operationId":"get_me","summary":"Show the Challonge account that owns the API key (username and avatar link). Use for \"Which Challonge account is my API ","description":"Show the Challonge account that owns the API key (username and avatar link). Use for \"Which Challonge account is my API key connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_meArguments","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/list_tournaments":{"post":{"operationId":"list_tournaments","summary":"List tournaments organised by the key's owner, filterable by state, format and creation date. Free keys are limited to 5","description":"List tournaments organised by the key's owner, filterable by state, format and creation date. Free keys are limited to 500 requests per month. Use for \"Which of my Challonge tournaments are in progress\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["pending","in_progress","ended"],"type":"string"},{"type":"null"}],"default":null,"description":"Only tournaments in this state.","title":"State"},"type":{"anyOf":[{"enum":["single_elimination","double_elimination","round_robin","swiss","free_for_all","time_trail","grand_prix"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this bracket format.","title":"Type"},"created_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only tournaments created after this date, mm/dd/yyyy.","title":"Created After"},"created_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only tournaments created before this date, mm/dd/yyyy.","title":"Created Before"},"community_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Subdomain or permalink of the community the tournament belongs to; required for community tournaments.","title":"Community Id"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (default 25).","title":"Per Page"}},"title":"list_tournamentsArguments","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/get_tournament":{"post":{"operationId":"get_tournament","summary":"Get one tournament: name, URL slug, format, game, start time, privacy and whether a group stage is used. Use for \"What a","description":"Get one tournament: name, URL slug, format, game, start time, privacy and whether a group stage is used. Use for \"What are the details of Challonge tournament 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tournament_id":{"description":"Tournament id (recommended) or its URL slug.","maxLength":200,"title":"Tournament Id","type":"string"},"community_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Subdomain or permalink of the community the tournament belongs to; required for community tournaments.","title":"Community Id"}},"required":["tournament_id"],"title":"get_tournamentArguments","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/list_participants":{"post":{"operationId":"list_participants","summary":"List the participants of a tournament with seed, final rank, group and whether they are still active. Use for \"Who is pl","description":"List the participants of a tournament with seed, final rank, group and whether they are still active. Use for \"Who is playing in Challonge tournament 12345 and what are the seeds\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tournament_id":{"description":"Tournament id (recommended) or its URL slug.","maxLength":200,"title":"Tournament Id","type":"string"},"community_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Subdomain or permalink of the community the tournament belongs to; required for community tournaments.","title":"Community Id"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (default 25).","title":"Per Page"}},"required":["tournament_id"],"title":"list_participantsArguments","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/list_matches":{"post":{"operationId":"list_matches","summary":"List the matches of a tournament with round, identifier, state, score and winner, filterable by state or participant. Us","description":"List the matches of a tournament with round, identifier, state, score and winner, filterable by state or participant. Use for \"Which matches of Challonge tournament 12345 are still open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tournament_id":{"description":"Tournament id (recommended) or its URL slug.","maxLength":200,"title":"Tournament Id","type":"string"},"community_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Subdomain or permalink of the community the tournament belongs to; required for community tournaments.","title":"Community Id"},"state":{"anyOf":[{"enum":["pending","open","complete"],"type":"string"},{"type":"null"}],"default":null,"description":"Only matches in this state.","title":"State"},"participant_id":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only matches of this participant id.","title":"Participant Id"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (default 25).","title":"Per Page"}},"required":["tournament_id"],"title":"list_matchesArguments","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/list_stations":{"post":{"operationId":"list_stations","summary":"List the stations (setups or streams) of a tournament and the match each one is hosting. Use for \"Which stations are use","description":"List the stations (setups or streams) of a tournament and the match each one is hosting. Use for \"Which stations are used in Challonge tournament 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tournament_id":{"description":"Tournament id (recommended) or its URL slug.","maxLength":200,"title":"Tournament Id","type":"string"},"community_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Subdomain or permalink of the community the tournament belongs to; required for community tournaments.","title":"Community Id"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (default 25).","title":"Per Page"}},"required":["tournament_id"],"title":"list_stationsArguments","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}}}}