{"openapi":"3.1.0","info":{"title":"Wasabi (BYOK) API","version":"0.1.0","description":"Wasabi (BYOK) lets an AI assistant read your own Wasabi data through the Wasabi API with a key you supply (Wasabi Account Control API key (control accounts only)). Read-only: 9 tools (list_sub_accounts, get_sub_account, get_all_utilizations, get_bucket_utilizations, get_utilization_status, get_control_account_utilizations, get_sub_account_utilizations, list_sub_invoices, get_sub_invoice). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-wasabi.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-wasabi/docs"},"termsOfService":"https://connectorbay.com/byok-wasabi/terms"},"servers":[{"url":"https://byok-wasabi.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-wasabi/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_sub_accounts":{"post":{"operationId":"list_sub_accounts","summary":"List the sub-accounts of your Wasabi control account with name, trial state, quota and MFA status. Use for \"Which sub-ac","description":"List the sub-accounts of your Wasabi control account with name, trial state, quota and MFA status. Use for \"Which sub-accounts does my Wasabi control account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_sub_accountsArguments","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_sub_account":{"post":{"operationId":"get_sub_account","summary":"Get summary information for one sub-account: name, trial flag and expiry, quota and MFA status. Use for \"Is Wasabi sub-a","description":"Get summary information for one sub-account: name, trial flag and expiry, quota and MFA status. Use for \"Is Wasabi sub-account 12345 still a trial\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"acct_num":{"description":"Account number of the sub-account, from list_sub_accounts.","title":"Acct Num","type":"integer"}},"required":["acct_num"],"title":"get_sub_accountArguments","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_all_utilizations":{"post":{"operationId":"get_all_utilizations","summary":"Get daily storage and transfer utilization of the control account and all sub-accounts, optionally for a date range. Use","description":"Get daily storage and transfer utilization of the control account and all sub-accounts, optionally for a date range. Use for \"How much storage did my Wasabi accounts use in the last days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"First day to include, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Last day to include, YYYY-MM-DD.","title":"To Date"},"latest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only the most recent daily record.","title":"Latest"}},"title":"get_all_utilizationsArguments","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_bucket_utilizations":{"post":{"operationId":"get_bucket_utilizations","summary":"Get daily utilization of the control account and sub-accounts broken down per bucket. Use for \"Which Wasabi buckets use ","description":"Get daily utilization of the control account and sub-accounts broken down per bucket. Use for \"Which Wasabi buckets use the most storage\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"First day to include, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Last day to include, YYYY-MM-DD.","title":"To Date"},"latest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only the most recent daily record.","title":"Latest"}},"title":"get_bucket_utilizationsArguments","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_utilization_status":{"post":{"operationId":"get_utilization_status","summary":"Show when the latest daily utilization data was completed and for how many sub-accounts. Use for \"Is the Wasabi utilizat","description":"Show when the latest daily utilization data was completed and for how many sub-accounts. Use for \"Is the Wasabi utilization data up to date\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_utilization_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_control_account_utilizations":{"post":{"operationId":"get_control_account_utilizations","summary":"Get daily utilization of the control account itself, optionally with per-region details. Use for \"How much does my Wasab","description":"Get daily utilization of the control account itself, optionally with per-region details. Use for \"How much does my Wasabi control account itself store\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"First day to include, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Last day to include, YYYY-MM-DD.","title":"To Date"},"latest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only the most recent daily record.","title":"Latest"},"include_regional_utilizations":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add a per-region breakdown to each record.","title":"Include Regional Utilizations"}},"title":"get_control_account_utilizationsArguments","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_sub_account_utilizations":{"post":{"operationId":"get_sub_account_utilizations","summary":"Get daily storage and transfer utilization of one sub-account, optionally for a date range. Use for \"How much storage do","description":"Get daily storage and transfer utilization of one sub-account, optionally for a date range. Use for \"How much storage does Wasabi sub-account 12345 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"acct_num":{"description":"Account number of the sub-account, from list_sub_accounts.","title":"Acct Num","type":"integer"},"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"First day to include, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Last day to include, YYYY-MM-DD.","title":"To Date"},"latest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only the most recent daily record.","title":"Latest"}},"required":["acct_num"],"title":"get_sub_account_utilizationsArguments","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_sub_invoices":{"post":{"operationId":"list_sub_invoices","summary":"List the sub-invoices of one sub-account with period, total, currency and status. Use for \"What were the invoices for Wa","description":"List the sub-invoices of one sub-account with period, total, currency and status. Use for \"What were the invoices for Wasabi sub-account 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"acct_num":{"description":"Account number of the sub-account, from list_sub_accounts.","title":"Acct Num","type":"integer"},"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"First day to include, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Last day to include, YYYY-MM-DD.","title":"To Date"}},"required":["acct_num"],"title":"list_sub_invoicesArguments","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_sub_invoice":{"post":{"operationId":"get_sub_invoice","summary":"Get one sub-invoice with its line items (type, description, quantity, unit cost and total). Use for \"What line items are","description":"Get one sub-invoice with its line items (type, description, quantity, unit cost and total). Use for \"What line items are on Wasabi sub-invoice 1 of account 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"acct_num":{"description":"Account number of the sub-account, from list_sub_accounts.","title":"Acct Num","type":"integer"},"sub_invoice_num":{"description":"Number of the sub-invoice, from list_sub_invoices.","title":"Sub Invoice Num","type":"integer"}},"required":["acct_num","sub_invoice_num"],"title":"get_sub_invoiceArguments","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}}}}