{"openapi":"3.1.0","info":{"title":"Data Golf (BYOK) API","version":"0.1.0","description":"Data Golf (BYOK) lets an AI assistant read your own Data Golf data through the Data Golf API with a key you supply (Data Golf API key (Scratch Plus membership)). Read-only: 8 tools (list_players, get_schedule, get_field_updates, get_dg_rankings, get_pre_tournament_predictions, get_skill_ratings, get_live_predictions, get_live_tournament_stats). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-datagolf.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-datagolf/docs"},"termsOfService":"https://connectorbay.com/byok-datagolf/terms"},"servers":[{"url":"https://byok-datagolf.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-datagolf/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_players":{"post":{"operationId":"list_players","summary":"List golfers who have played on a major tour since 2018 or play this week, with Data Golf player ids, country and amateu","description":"List golfers who have played on a major tour since 2018 or play this week, with Data Golf player ids, country and amateur status. Use for \"What is the Data Golf player id of Scottie Scheffler\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_playersArguments","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_schedule":{"post":{"operationId":"get_schedule","summary":"Get a season schedule for the main golf tours with event names and ids, courses, locations and winners of completed even","description":"Get a season schedule for the main golf tours with event names and ids, courses, locations and winners of completed events. Use for \"What is the PGA Tour schedule for 2026 and who won each event\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tour":{"anyOf":[{"enum":["all","pga","euro","kft","alt"],"type":"string"},{"type":"null"}],"default":"all","description":"Tour to use: all, pga, euro, kft, alt, where alt is LIV Golf. Default all.","title":"Tour"},"season":{"anyOf":[{"maximum":2100,"minimum":2017,"type":"integer"},{"type":"null"}],"default":null,"description":"Season year such as 2026 (default: the current or upcoming season).","title":"Season"},"upcoming_only":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"no","description":"yes to list only upcoming events.","title":"Upcoming Only"}},"title":"get_scheduleArguments","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_field_updates":{"post":{"operationId":"get_field_updates","summary":"Get the entry list of an upcoming tournament with withdrawals, tee times, start holes and Data Golf and tour player ids.","description":"Get the entry list of an upcoming tournament with withdrawals, tee times, start holes and Data Golf and tour player ids. Use for \"Who is in the field for this week's PGA Tour event and what are their tee times\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tour":{"anyOf":[{"enum":["pga","opp","euro","kft","alt","upcoming_pga"],"type":"string"},{"type":"null"}],"default":"pga","description":"Tour to use: pga, opp, euro, kft, alt, upcoming_pga, where opp is the opposite-field event, alt is LIV Golf and upcoming_pga is next week's PGA Tour event. Default pga.","title":"Tour"}},"title":"get_field_updatesArguments","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_dg_rankings":{"post":{"operationId":"get_dg_rankings","summary":"Get the top 500 golfers of the current Data Golf ranking with skill estimate and the matching official world ranking. Us","description":"Get the top 500 golfers of the current Data Golf ranking with skill estimate and the matching official world ranking. Use for \"Who are the top 10 golfers in the Data Golf rankings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_dg_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_pre_tournament_predictions":{"post":{"operationId":"get_pre_tournament_predictions","summary":"Get full-field finish probability forecasts (win, top 5, top 10, top 20, make cut and more) for the upcoming tournament.","description":"Get full-field finish probability forecasts (win, top 5, top 10, top 20, make cut and more) for the upcoming tournament. Use for \"Who is most likely to win this week's PGA Tour tournament\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tour":{"anyOf":[{"enum":["pga","euro","kft","opp","alt"],"type":"string"},{"type":"null"}],"default":"pga","description":"Tour to use: pga, euro, kft, opp, alt. Default pga.","title":"Tour"},"add_position":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated extra finish positions to include (each 1 to 50), for example '17,23'.","title":"Add Position"},"dead_heat":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"yes","description":"yes to adjust the odds for dead-heat rules.","title":"Dead Heat"},"odds_format":{"anyOf":[{"enum":["percent","american","decimal","fraction"],"type":"string"},{"type":"null"}],"default":"percent","description":"How probabilities are shown: percent, american, decimal or fraction.","title":"Odds Format"}},"title":"get_pre_tournament_predictionsArguments","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_skill_ratings":{"post":{"operationId":"get_skill_ratings","summary":"Get each golfer's estimated skill and rank per skill category (for example driving, approach, putting) for players with ","description":"Get each golfer's estimated skill and rank per skill category (for example driving, approach, putting) for players with enough measured rounds. Use for \"Which golfers have the best approach skill rating\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"display":{"anyOf":[{"enum":["value","rank"],"type":"string"},{"type":"null"}],"default":"value","description":"Show skill values or ranks.","title":"Display"}},"title":"get_skill_ratingsArguments","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_predictions":{"post":{"operationId":"get_live_predictions","summary":"Get live finish probabilities, updated about every five minutes, for a tournament in progress. Use for \"What are the liv","description":"Get live finish probabilities, updated about every five minutes, for a tournament in progress. Use for \"What are the live win probabilities in the PGA Tour event right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tour":{"anyOf":[{"enum":["pga","euro","kft","opp","alt"],"type":"string"},{"type":"null"}],"default":"pga","description":"Tour to use: pga, euro, opp, kft, alt. Default pga.","title":"Tour"},"dead_heat":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"no","description":"yes to adjust the odds for dead-heat rules.","title":"Dead Heat"},"odds_format":{"anyOf":[{"enum":["percent","american","decimal","fraction"],"type":"string"},{"type":"null"}],"default":"percent","description":"How probabilities are shown: percent, american, decimal or fraction.","title":"Odds Format"}},"title":"get_live_predictionsArguments","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_tournament_stats":{"post":{"operationId":"get_live_tournament_stats","summary":"Get live strokes-gained and traditional statistics for every player in a PGA Tour tournament in progress. Use for \"How m","description":"Get live strokes-gained and traditional statistics for every player in a PGA Tour tournament in progress. Use for \"How many strokes gained putting does each player have so far this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"stats":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated statistics: sg_putt, sg_arg, sg_app, sg_ott, sg_t2g, sg_bs, sg_total, distance, accuracy, gir, prox_fw, prox_rgh, scrambling, great_shots, poor_shots.","title":"Stats"},"round":{"anyOf":[{"enum":["event_cumulative","event_avg","1","2","3","4"],"type":"string"},{"type":"null"}],"default":null,"description":"Round to report: event_cumulative, event_avg, 1, 2, 3 or 4.","title":"Round"},"display":{"anyOf":[{"enum":["value","rank"],"type":"string"},{"type":"null"}],"default":"value","description":"Show values or ranks.","title":"Display"}},"title":"get_live_tournament_statsArguments","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}}}}