{"openapi":"3.1.0","info":{"title":"Sportradar Tennis (BYOK) API","version":"0.1.0","description":"Sportradar Tennis (BYOK) lets an AI assistant read your own Sportradar Tennis data through the Sportradar Tennis API with a key you supply (Sportradar Tennis API key (trial or production)). Read-only: 10 tools (list_competitions, list_competition_seasons, get_rankings, get_race_rankings, get_daily_summaries, get_live_summaries, get_match_summary, get_player_profile, get_season_standings,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-sportradar-tennis.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-sportradar-tennis/docs"},"termsOfService":"https://connectorbay.com/byok-sportradar-tennis/terms"},"servers":[{"url":"https://byok-sportradar-tennis.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-sportradar-tennis/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/list_competitions":{"post":{"operationId":"list_competitions","summary":"List all tennis competitions (tournaments and tours) with id, name, level, gender, type and country category. Use for \"W","description":"List all tennis competitions (tournaments and tours) with id, name, level, gender, type and country category. Use for \"Which tennis competitions does Sportradar cover and what is the id of Wimbledon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"}},"required":["access_level","language_code"],"title":"list_competitionsArguments","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_competition_seasons":{"post":{"operationId":"list_competition_seasons","summary":"List the seasons (yearly editions) of one tennis competition with season id, name, year and dates. Use for \"What edition","description":"List the seasons (yearly editions) of one tennis competition with season id, name, year and dates. Use for \"What editions of Wimbledon exist and what is the season id of the latest one\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"},"competition_id":{"description":"Competition id from list_competitions, for example 'sr:competition:2555'.","maxLength":60,"title":"Competition Id","type":"string"}},"required":["access_level","language_code","competition_id"],"title":"list_competition_seasonsArguments","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_rankings":{"post":{"operationId":"get_rankings","summary":"Get the current ATP and WTA world rankings with rank, points, movement and competitions played per player. Use for \"Who ","description":"Get the current ATP and WTA world rankings with rank, points, movement and competitions played per player. Use for \"Who is ranked number one in the ATP and WTA rankings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"}},"required":["access_level","language_code"],"title":"get_rankingsArguments","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_race_rankings":{"post":{"operationId":"get_race_rankings","summary":"Get the race to the ATP and WTA finals standings with rank and points per player. Use for \"Who leads the race to the ATP","description":"Get the race to the ATP and WTA finals standings with rank and points per player. Use for \"Who leads the race to the ATP finals\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"}},"required":["access_level","language_code"],"title":"get_race_rankingsArguments","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_daily_summaries":{"post":{"operationId":"get_daily_summaries","summary":"Get all tennis matches on one date, across tournaments, with players, status, set scores and winner. Use for \"Which tenn","description":"Get all tennis matches on one date, across tournaments, with players, status, set scores and winner. Use for \"Which tennis matches are played on 2025-05-17 and who won\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"},"date":{"description":"Date in YYYY-MM-DD format.","maxLength":10,"title":"Date","type":"string"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for paging (default 0).","title":"Start"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many matches to return (1 to 200).","title":"Limit"}},"required":["access_level","language_code","date"],"title":"get_daily_summariesArguments","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_live_summaries":{"post":{"operationId":"get_live_summaries","summary":"Get all tennis matches that are live right now with players, status and current set scores. Use for \"Which tennis matche","description":"Get all tennis matches that are live right now with players, status and current set scores. Use for \"Which tennis matches are live right now and what is the score\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"}},"required":["access_level","language_code"],"title":"get_live_summariesArguments","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_summary":{"post":{"operationId":"get_match_summary","summary":"Get the summary of one tennis match: players, venue, status, score by set and match statistics. Use for \"Give me the sco","description":"Get the summary of one tennis match: players, venue, status, score by set and match statistics. Use for \"Give me the score and statistics of match sr:sport_event:61449581\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"},"sport_event_id":{"description":"Match id, for example 'sr:sport_event:61449581'.","maxLength":60,"title":"Sport Event Id","type":"string"}},"required":["access_level","language_code","sport_event_id"],"title":"get_match_summaryArguments","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_player_profile":{"post":{"operationId":"get_player_profile","summary":"Get a tennis player or doubles team profile: country, handedness, height, career-high rankings, current rankings, compet","description":"Get a tennis player or doubles team profile: country, handedness, height, career-high rankings, current rankings, competitions played and yearly statistics. Use for \"Show the profile and ranking of player sr:competitor:157754\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"},"competitor_id":{"description":"Player or doubles team id, for example 'sr:competitor:157754'.","maxLength":60,"title":"Competitor Id","type":"string"}},"required":["access_level","language_code","competitor_id"],"title":"get_player_profileArguments","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_season_standings":{"post":{"operationId":"get_season_standings","summary":"Get the standings of a tennis season where a table exists (for example team events), as groups of ranked entries. Use fo","description":"Get the standings of a tennis season where a table exists (for example team events), as groups of ranked entries. Use for \"What are the standings of season sr:season:111566\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"},"season_id":{"description":"Season id as returned by list_competition_seasons, for example 'sr:season:111566'.","maxLength":60,"title":"Season Id","type":"string"}},"required":["access_level","language_code","season_id"],"title":"get_season_standingsArguments","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_season_competitors":{"post":{"operationId":"get_season_competitors","summary":"List the players and teams entered in a tennis season with id, name, short name and abbreviation. Use for \"Who is entere","description":"List the players and teams entered in a tennis season with id, name, short name and abbreviation. Use for \"Who is entered in season sr:season:111566\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level of your key: trial or production.","enum":["trial","production"],"title":"Access Level","type":"string"},"language_code":{"description":"Language of names in the answer, for example en.","enum":["da","de","el","en","es","fi","fr","id","it","ja","nl","pt","ru","sr","srl","th","tr","zh","zht"],"title":"Language Code","type":"string"},"season_id":{"description":"Season id as returned by list_competition_seasons, for example 'sr:season:111566'.","maxLength":60,"title":"Season Id","type":"string"}},"required":["access_level","language_code","season_id"],"title":"get_season_competitorsArguments","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}}}}