{"openapi":"3.1.0","info":{"title":"Riot Games TFT (BYOK) API","version":"0.1.0","description":"Riot Games TFT (BYOK) lets an AI assistant read your own Riot Games TFT data through the Riot Games TFT API with a key you supply (Riot API key). Read-only: 10 tools (get_ranked_entries_by_puuid, get_challenger_league, get_grandmaster_league, get_master_league, list_league_entries, get_top_rated_ladder, get_summoner_by_puuid, list_match_ids, get_match, get_tft_status). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-riotgames-tft.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-riotgames-tft/docs"},"termsOfService":"https://connectorbay.com/byok-riotgames-tft/terms"},"servers":[{"url":"https://byok-riotgames-tft.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-riotgames-tft/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_ranked_entries_by_puuid":{"post":{"operationId":"get_ranked_entries_by_puuid","summary":"Get a player's Teamfight Tactics ranked entries in all queues: tier, rank, league points, wins, losses and streak flags.","description":"Get a player's Teamfight Tactics ranked entries in all queues: tier, rank, league points, wins, losses and streak flags. Riot development keys expire after 24 hours and have low rate limits. Use for \"What is this player's Teamfight Tactics rank\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"},"puuid":{"description":"Player's encrypted PUUID (78 characters), for example from the Riot Games connector's get_account_by_riot_id.","maxLength":100,"title":"Puuid","type":"string"}},"required":["region","puuid"],"title":"get_ranked_entries_by_puuidArguments","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_challenger_league":{"post":{"operationId":"get_challenger_league","summary":"Get the Teamfight Tactics Challenger league of a server: league name and every entry with points, wins and losses. Use f","description":"Get the Teamfight Tactics Challenger league of a server: league name and every entry with points, wins and losses. Use for \"Who is in the TFT Challenger league on NA\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"},"queue":{"anyOf":[{"enum":["RANKED_TFT","RANKED_TFT_DOUBLE_UP"],"type":"string"},{"type":"null"}],"default":"RANKED_TFT","description":"Ranked queue: RANKED_TFT (default) or RANKED_TFT_DOUBLE_UP.","title":"Queue"}},"required":["region"],"title":"get_challenger_leagueArguments","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_grandmaster_league":{"post":{"operationId":"get_grandmaster_league","summary":"Get the Teamfight Tactics Grandmaster league of a server with its entries. Use for \"Who is in the TFT Grandmaster league","description":"Get the Teamfight Tactics Grandmaster league of a server with its entries. Use for \"Who is in the TFT Grandmaster league on EUW\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"},"queue":{"anyOf":[{"enum":["RANKED_TFT","RANKED_TFT_DOUBLE_UP"],"type":"string"},{"type":"null"}],"default":"RANKED_TFT","description":"Ranked queue: RANKED_TFT (default) or RANKED_TFT_DOUBLE_UP.","title":"Queue"}},"required":["region"],"title":"get_grandmaster_leagueArguments","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_master_league":{"post":{"operationId":"get_master_league","summary":"Get the Teamfight Tactics Master league of a server with its entries. Use for \"Who is in the TFT Master league on KR\".","description":"Get the Teamfight Tactics Master league of a server with its entries. Use for \"Who is in the TFT Master league on KR\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"},"queue":{"anyOf":[{"enum":["RANKED_TFT","RANKED_TFT_DOUBLE_UP"],"type":"string"},{"type":"null"}],"default":"RANKED_TFT","description":"Ranked queue: RANKED_TFT (default) or RANKED_TFT_DOUBLE_UP.","title":"Queue"}},"required":["region"],"title":"get_master_leagueArguments","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_league_entries":{"post":{"operationId":"list_league_entries","summary":"List Teamfight Tactics ranked entries of one tier and division (Iron to Diamond), a page at a time. Use for \"Show TFT Di","description":"List Teamfight Tactics ranked entries of one tier and division (Iron to Diamond), a page at a time. Use for \"Show TFT Diamond II players on NA\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"},"tier":{"description":"Tier: DIAMOND, EMERALD, PLATINUM, GOLD, SILVER, BRONZE or IRON.","enum":["DIAMOND","EMERALD","PLATINUM","GOLD","SILVER","BRONZE","IRON"],"title":"Tier","type":"string"},"division":{"description":"Division within the tier: I, II, III or IV.","enum":["I","II","III","IV"],"title":"Division","type":"string"},"queue":{"anyOf":[{"enum":["RANKED_TFT","RANKED_TFT_DOUBLE_UP"],"type":"string"},{"type":"null"}],"default":"RANKED_TFT","description":"Ranked queue: RANKED_TFT (default) or RANKED_TFT_DOUBLE_UP.","title":"Queue"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region","tier","division"],"title":"list_league_entriesArguments","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_top_rated_ladder":{"post":{"operationId":"get_top_rated_ladder","summary":"Get the top of the Teamfight Tactics Hyper Roll (turbo) rated ladder: rated tier, rating and wins. Use for \"Who is at th","description":"Get the top of the Teamfight Tactics Hyper Roll (turbo) rated ladder: rated tier, rating and wins. Use for \"Who is at the top of the TFT Hyper Roll ladder\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"},"queue":{"const":"RANKED_TFT_TURBO","description":"Rated queue; the only documented value is RANKED_TFT_TURBO.","title":"Queue","type":"string"}},"required":["region","queue"],"title":"get_top_rated_ladderArguments","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_summoner_by_puuid":{"post":{"operationId":"get_summoner_by_puuid","summary":"Get a Teamfight Tactics summoner by PUUID: profile icon, level and last modified time (epoch milliseconds). Use for \"Wha","description":"Get a Teamfight Tactics summoner by PUUID: profile icon, level and last modified time (epoch milliseconds). Use for \"What level is this Teamfight Tactics player\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"},"encrypted_puuid":{"description":"Player's encrypted PUUID (78 characters).","maxLength":100,"title":"Encrypted Puuid","type":"string"}},"required":["region","encrypted_puuid"],"title":"get_summoner_by_puuidArguments","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_match_ids":{"post":{"operationId":"list_match_ids","summary":"List a player's Teamfight Tactics match IDs, newest first, optionally inside a time window (epoch seconds). Use for \"Wha","description":"List a player's Teamfight Tactics match IDs, newest first, optionally inside a time window (epoch seconds). Use for \"What are the last 10 TFT matches of this player\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Regional routing value: americas, asia, europe or sea (the continent group of the player's account).","enum":["americas","asia","europe","sea","br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2"],"title":"Region","type":"string"},"puuid":{"description":"Player's encrypted PUUID (78 characters), for example from the Riot Games connector's get_account_by_riot_id.","maxLength":100,"title":"Puuid","type":"string"},"start":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Start index, default 0.","title":"Start"},"count":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many match IDs to return (default 20).","title":"Count"},"start_time":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only matches after this epoch time in seconds.","title":"Start Time"},"end_time":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only matches before this epoch time in seconds.","title":"End Time"}},"required":["region","puuid"],"title":"list_match_idsArguments","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_match":{"post":{"operationId":"get_match","summary":"Get a Teamfight Tactics match: set, game type, length, version and the participants' placement, level, gold left, elimin","description":"Get a Teamfight Tactics match: set, game type, length, version and the participants' placement, level, gold left, eliminated players and win flag. Use for \"Show the results of TFT match NA1_5000000001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Regional routing value: americas, asia, europe or sea (the continent group of the player's account).","enum":["americas","asia","europe","sea","br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2"],"title":"Region","type":"string"},"match_id":{"description":"Match ID such as 'NA1_5000000001', from list_match_ids.","maxLength":40,"title":"Match Id","type":"string"}},"required":["region","match_id"],"title":"get_matchArguments","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_tft_status":{"post":{"operationId":"get_tft_status","summary":"Get the Teamfight Tactics status of a server: open maintenances and incidents with severity and platforms. Use for \"Is T","description":"Get the Teamfight Tactics status of a server: open maintenances and incidents with severity and platforms. Use for \"Is Teamfight Tactics up on the EUW server\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Platform routing value (the game server): na1, euw1, eun1, kr, br1, jp1, la1, la2, me1, oc1, ru, sg2, tr1, tw2 or vn2.","enum":["br1","eun1","euw1","jp1","kr","la1","la2","me1","na1","oc1","ru","sg2","tr1","tw2","vn2","americas","asia","europe","sea"],"title":"Region","type":"string"}},"required":["region"],"title":"get_tft_statusArguments","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}}}}