{"openapi":"3.1.0","info":{"title":"Riot Games Valorant (BYOK) API","version":"0.1.0","description":"Riot Games Valorant (BYOK) lets an AI assistant read your own Riot Games Valorant data through the Riot Games Valorant API with a key you supply (Riot API key (VALORANT access)). Read-only: 6 tools (get_content, get_valorant_status, get_ranked_leaderboard, list_recent_matches, get_match_list, get_match). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-riotgames-valorant.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-riotgames-valorant/docs"},"termsOfService":"https://connectorbay.com/byok-riotgames-valorant/terms"},"servers":[{"url":"https://byok-riotgames-valorant.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-riotgames-valorant/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_content":{"post":{"operationId":"get_content","summary":"Get VALORANT game content (agents, maps, acts, game modes) for one locale; acts carry the act IDs used by the leaderboar","description":"Get VALORANT game content (agents, maps, acts, game modes) for one locale; acts carry the act IDs used by the leaderboard tool. Use for \"Which VALORANT acts and maps exist right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"VALORANT routing value: na, eu, ap, kr, br or latam (the shard of the account), or esports / esportseu for tournament data.","enum":["na","eu","ap","kr","br","latam","esports","esportseu"],"title":"Region","type":"string"},"locale":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":"en-US","description":"Locale such as en-US, de-DE or ja-JP; with a locale the answer carries one name per item (default en-US).","title":"Locale"}},"required":["region"],"title":"get_contentArguments","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_valorant_status":{"post":{"operationId":"get_valorant_status","summary":"Get the VALORANT status of a shard: open maintenances and incidents with severity and platforms. Use for \"Is VALORANT up","description":"Get the VALORANT status of a shard: open maintenances and incidents with severity and platforms. Use for \"Is VALORANT up on the EU shard\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"VALORANT routing value: na, eu, ap, kr, br or latam (the shard of the account), or esports / esportseu for tournament data.","enum":["na","eu","ap","kr","br","latam","esports","esportseu"],"title":"Region","type":"string"}},"required":["region"],"title":"get_valorant_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}},"/v1/tools/get_ranked_leaderboard":{"post":{"operationId":"get_ranked_leaderboard","summary":"Get the VALORANT competitive leaderboard of an act: rank, ranked rating, wins and Riot ID of each player, a page at a ti","description":"Get the VALORANT competitive leaderboard of an act: rank, ranked rating, wins and Riot ID of each player, a page at a time. Use for \"Who leads the VALORANT ranked leaderboard this act in EU\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"VALORANT routing value: na, eu, ap, kr, br or latam (the shard of the account), or esports / esportseu for tournament data.","enum":["na","eu","ap","kr","br","latam","esports","esportseu"],"title":"Region","type":"string"},"act_id":{"description":"Act ID (a UUID) from get_content's acts list.","maxLength":64,"title":"Act Id","type":"string"},"size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many players to return (1 to 200, default 200).","title":"Size"},"start_index":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first player, default 0.","title":"Start Index"}},"required":["region","act_id"],"title":"get_ranked_leaderboardArguments","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_recent_matches":{"post":{"operationId":"list_recent_matches","summary":"List IDs of VALORANT matches finished recently in one queue (last 10 minutes on live shards, 12 hours for esports). Riot","description":"List IDs of VALORANT matches finished recently in one queue (last 10 minutes on live shards, 12 hours for esports). Riot may limit VALORANT match data to registered production keys; a development key can be refused. Use for \"Which VALORANT competitive matches finished just now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"VALORANT routing value: na, eu, ap, kr, br or latam (the shard of the account), or esports / esportseu for tournament data.","enum":["na","eu","ap","kr","br","latam","esports","esportseu"],"title":"Region","type":"string"},"queue":{"description":"Queue: competitive, unrated, spikerush, tournamentmode, deathmatch, onefa, ggteam, hurm, swiftplay or skirmish2v2.","enum":["competitive","unrated","spikerush","tournamentmode","deathmatch","onefa","ggteam","hurm","swiftplay","skirmish2v2"],"title":"Queue","type":"string"}},"required":["region","queue"],"title":"list_recent_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/get_match_list":{"post":{"operationId":"get_match_list","summary":"List the recent VALORANT matches of one player: match ID, start time (epoch milliseconds) and queue. Riot may limit VALO","description":"List the recent VALORANT matches of one player: match ID, start time (epoch milliseconds) and queue. Riot may limit VALORANT match data to registered production keys; a development key can be refused. Use for \"What VALORANT matches did this player play recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"VALORANT routing value: na, eu, ap, kr, br or latam (the shard of the account), or esports / esportseu for tournament data.","enum":["na","eu","ap","kr","br","latam","esports","esportseu"],"title":"Region","type":"string"},"puuid":{"description":"Player's encrypted PUUID (78 characters).","maxLength":100,"title":"Puuid","type":"string"}},"required":["region","puuid"],"title":"get_match_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/get_match":{"post":{"operationId":"get_match","summary":"Get a VALORANT match's summary: map, mode, queue, version, length, ranked flag and each team's rounds won. Per-player an","description":"Get a VALORANT match's summary: map, mode, queue, version, length, ranked flag and each team's rounds won. Per-player and per-round detail is left out. Riot may limit VALORANT match data to registered production keys; a development key can be refused. Use for \"Show the summary of VALORANT match 11111111-2222-3333-4444-555555555555\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"VALORANT routing value: na, eu, ap, kr, br or latam (the shard of the account), or esports / esportseu for tournament data.","enum":["na","eu","ap","kr","br","latam","esports","esportseu"],"title":"Region","type":"string"},"match_id":{"description":"Match ID (a UUID), from list_recent_matches or get_match_list.","maxLength":64,"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}}}}