{"openapi":"3.1.0","info":{"title":"Splunk Observability Dashboards (BYOK) API","version":"0.1.0","description":"Splunk Observability Dashboards (BYOK) lets an AI assistant read your own Splunk Observability Dashboards data through the Splunk Observability Dashboards API with a key you supply (Splunk Observability Cloud user API access token). Read-only: 8 tools (list_dashboards, get_dashboard, list_dashboard_groups, get_dashboard_group, list_charts, get_chart, list_teams, get_team). The BYOK key travels...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-splunk-observability-boards.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-splunk-observability-boards/docs"},"termsOfService":"https://connectorbay.com/byok-splunk-observability-boards/terms"},"servers":[{"url":"https://byok-splunk-observability-boards.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-splunk-observability-boards/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_dashboards":{"post":{"operationId":"list_dashboards","summary":"Search dashboards by name or by a chart they contain: id, name, description, group, tags, chart layout, filters and date","description":"Search dashboards by name or by a chart they contain: id, name, description, group, tags, chart layout, filters and dates. Use for \"Which Splunk Observability dashboards mention latency\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to find anywhere in the dashboard name (empty means any).","title":"Name"},"chart_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only the dashboard that contains the chart with this id.","title":"Chart Id"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 200; the service uses 50 when the value is invalid).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"0-based index of the first result to return, for paging.","title":"Offset"}},"required":["realm"],"title":"list_dashboardsArguments","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_dashboard":{"post":{"operationId":"get_dashboard","summary":"Get one dashboard by id with its charts and layout, tags, filters, density and dates. Use for \"Show the layout of Splunk","description":"Get one dashboard by id with its charts and layout, tags, filters, density and dates. Use for \"Show the layout of Splunk Observability dashboard D1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"dashboard_id":{"description":"Dashboard id from list_dashboards.","maxLength":60,"title":"Dashboard Id","type":"string"}},"required":["realm","dashboard_id"],"title":"get_dashboardArguments","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_dashboard_groups":{"post":{"operationId":"list_dashboard_groups","summary":"Search dashboard groups by name, team, or a dashboard they contain: id, name, description, dashboards, teams and dates. ","description":"Search dashboard groups by name, team, or a dashboard they contain: id, name, description, dashboards, teams and dates. Use for \"Which dashboard groups does team T1 own in Splunk Observability\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to find anywhere in the dashboard group name (empty means any).","title":"Name"},"dashboard_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups that contain the dashboard with this id.","title":"Dashboard Id"},"team_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups associated with this team id.","title":"Team Id"},"exclude_custom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only built-in dashboard groups.","title":"Exclude Custom"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 200; the service uses 50 when the value is invalid).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"0-based index of the first result to return, for paging.","title":"Offset"}},"required":["realm"],"title":"list_dashboard_groupsArguments","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_dashboard_group":{"post":{"operationId":"get_dashboard_group","summary":"Get one dashboard group by id with its dashboards, teams, description and dates. Use for \"Show Splunk Observability dash","description":"Get one dashboard group by id with its dashboards, teams, description and dates. Use for \"Show Splunk Observability dashboard group G1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"group_id":{"description":"Dashboard group id from list_dashboard_groups.","maxLength":60,"title":"Group Id","type":"string"}},"required":["realm","group_id"],"title":"get_dashboard_groupArguments","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_charts":{"post":{"operationId":"list_charts","summary":"Search charts by name or tag: id, name, description and dates (use get_chart for the SignalFlow program). Use for \"Which","description":"Search charts by name or tag: id, name, description and dates (use get_chart for the SignalFlow program). Use for \"Which Splunk Observability charts are tagged prod and mention cpu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to find anywhere in the chart name (empty means any).","title":"Name"},"tags":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Tag pattern a chart must match.","title":"Tags"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 200; the service uses 50 when the value is invalid).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"0-based index of the first result to return, for paging.","title":"Offset"}},"required":["realm"],"title":"list_chartsArguments","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_chart":{"post":{"operationId":"get_chart","summary":"Get one chart by id: name, description, SignalFlow program text, tags, related detectors and chart type. Use for \"What q","description":"Get one chart by id: name, description, SignalFlow program text, tags, related detectors and chart type. Use for \"What query does Splunk Observability chart C1 run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"chart_id":{"description":"Chart id from list_charts or a dashboard's charts.","maxLength":60,"title":"Chart Id","type":"string"}},"required":["realm","chart_id"],"title":"get_chartArguments","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_teams":{"post":{"operationId":"list_teams","summary":"Search teams by name: id, name, description, member user ids and dates (notification settings are not returned). Use for","description":"Search teams by name: id, name, description, member user ids and dates (notification settings are not returned). Use for \"Which teams exist in Splunk Observability\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to find anywhere in the team name (empty means any).","title":"Name"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"lastUpdated","description":"Property to sort by (default lastUpdated); prefix with - for descending.","title":"Order By"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many teams to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"0-based index of the first team to return.","title":"Offset"}},"required":["realm"],"title":"list_teamsArguments","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_team":{"post":{"operationId":"get_team","summary":"Get one team by id: name, description, member user ids and dates (no notification settings). Use for \"Show Splunk Observ","description":"Get one team by id: name, description, member user ids and dates (no notification settings). Use for \"Show Splunk Observability team T1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"realm":{"description":"Splunk Observability Cloud realm of your organization (shown on your profile page), for example us1 or eu0.","enum":["us0","us1","eu0","eu1","eu2","au0","jp0","sg0"],"title":"Realm","type":"string"},"team_id":{"description":"Team id from list_teams.","maxLength":60,"title":"Team Id","type":"string"}},"required":["realm","team_id"],"title":"get_teamArguments","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}}}}