{"openapi":"3.1.0","info":{"title":"Axiom Workspace (BYOK) API","version":"0.1.0","description":"Axiom Workspace (BYOK) lets an AI assistant read your own Axiom Workspace data through the Axiom Workspace API with a key you supply (Axiom API token (or personal access token) with read access). Read-only: 9 tools (list_dashboards, get_dashboard, list_saved_queries, list_views, get_view, list_virtual_fields, get_virtual_field, list_notifiers, get_notifier). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-axiom-workspace.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-axiom-workspace/docs"},"termsOfService":"https://connectorbay.com/byok-axiom-workspace/terms"},"servers":[{"url":"https://byok-axiom-workspace.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-axiom-workspace/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":"List dashboards visible to the key (an API token does not see private dashboards): id, uid, name, description, refresh t","description":"List dashboards visible to the key (an API token does not see private dashboards): id, uid, name, description, refresh time, time window and version. Charts are not returned. Use for \"Which Axiom dashboards do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (1 to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for pagination.","title":"Offset"}},"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: name, description, refresh time, time window, version and label ids. Use for \"Show one Axiom da","description":"Get one dashboard by id: name, description, refresh time, time window, version and label ids. Use for \"Show one Axiom dashboard\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Dashboard id from list_dashboards.","maxLength":200,"title":"Id","type":"string"}},"required":["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_saved_queries":{"post":{"operationId":"list_saved_queries","summary":"List saved APL queries on datasets the key can read, with name, dataset, owner id and the APL text; filter by dataset or","description":"List saved APL queries on datasets the key can read, with name, dataset, owner id and the APL text; filter by dataset or name fragment. Use for \"Which saved APL queries exist in Axiom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"who":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"all","description":"Whose queries: 'team' for other users, 'all' for everybody, or your own user id. Required for a personal access token.","title":"Who"},"dataset":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only queries saved on this dataset.","title":"Dataset"},"qs":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only queries whose name contains this text (case-insensitive).","title":"Qs"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (1 to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for pagination.","title":"Offset"}},"title":"list_saved_queriesArguments","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_views":{"post":{"operationId":"list_views","summary":"List the views (named APL queries that behave like datasets), including views shared by other organizations. Use for \"Wh","description":"List the views (named APL queries that behave like datasets), including views shared by other organizations. Use for \"Which views are defined in Axiom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_viewsArguments","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_view":{"post":{"operationId":"get_view","summary":"Get one view by name: description, APL query and the datasets it reads. Use for \"Show the definition of one Axiom view\".","description":"Get one view by name: description, APL query and the datasets it reads. Use for \"Show the definition of one Axiom view\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Name of the view, from list_views.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_viewArguments","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_virtual_fields":{"post":{"operationId":"list_virtual_fields","summary":"List the virtual fields of one dataset (computed fields): name, expression, type and unit. Use for \"Which virtual fields","description":"List the virtual fields of one dataset (computed fields): name, expression, type and unit. Use for \"Which virtual fields does my Axiom dataset have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dataset":{"description":"Name of the dataset.","maxLength":200,"title":"Dataset","type":"string"}},"required":["dataset"],"title":"list_virtual_fieldsArguments","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_virtual_field":{"post":{"operationId":"get_virtual_field","summary":"Get one virtual field by id (dataset.name): expression, type, unit and description. Use for \"Show one Axiom virtual fiel","description":"Get one virtual field by id (dataset.name): expression, type, unit and description. Use for \"Show one Axiom virtual field\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Virtual field id in the form dataset.name, for example my-logs.latency_ms.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_virtual_fieldArguments","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_notifiers":{"post":{"operationId":"list_notifiers","summary":"List notifiers (alert destinations) with id, name, timestamps and label ids; channel settings such as webhook URLs are n","description":"List notifiers (alert destinations) with id, name, timestamps and label ids; channel settings such as webhook URLs are not returned. Use for \"Which notifiers are set up in Axiom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_notifiersArguments","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_notifier":{"post":{"operationId":"get_notifier","summary":"Get one notifier by id: name, disabled-until time, label ids and timestamps; channel settings are not returned. Use for ","description":"Get one notifier by id: name, disabled-until time, label ids and timestamps; channel settings are not returned. Use for \"Show one Axiom notifier\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Notifier id from list_notifiers.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_notifierArguments","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}}}}