{"openapi":"3.1.0","info":{"title":"Maxio Advanced Billing (BYOK) API","version":"0.1.0","description":"Maxio Advanced Billing (BYOK) lets an AI assistant read your own Maxio Advanced Billing data through the Maxio Advanced Billing API with a key you supply (Maxio Advanced Billing API key). Read-only: 9 tools (get_site, get_site_stats, list_products, list_product_families, list_components, list_coupons, list_reason_codes, list_invoices, count_events). The BYOK key travels with each request, is used...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-maxio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-maxio/docs"},"termsOfService":"https://connectorbay.com/byok-maxio/terms"},"servers":[{"url":"https://byok-maxio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-maxio/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/get_site":{"post":{"operationId":"get_site","summary":"Show the billing site: name, subdomain, currency, whether it is a test site and which features (customer hierarchy, port","description":"Show the billing site: name, subdomain, currency, whether it is a test site and which features (customer hierarchy, portal, auto renewals) are enabled. Use for \"Which Maxio billing site is this API key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"}},"required":["subdomain"],"title":"get_siteArguments","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_site_stats":{"post":{"operationId":"get_site_stats","summary":"Get the headline numbers of the site dashboard: total and active subscriptions, unpaid subscriptions and revenue today, ","description":"Get the headline numbers of the site dashboard: total and active subscriptions, unpaid subscriptions and revenue today, this month, this year and in total. Use for \"How many active subscriptions and how much revenue this month does my Maxio site have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"}},"required":["subdomain"],"title":"get_site_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}},"/v1/tools/list_products":{"post":{"operationId":"list_products","summary":"List products (plans) with price in cents, billing interval, trial settings, product family and archived date. Use for \"","description":"List products (plans) with price in cents, billing interval, trial settings, product family and archived date. Use for \"What products and prices do we sell in Maxio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include archived products.","title":"Include Archived"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (1 to 200, default 20).","title":"Per Page"}},"required":["subdomain"],"title":"list_productsArguments","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_product_families":{"post":{"operationId":"list_product_families","summary":"List product families (groups of products and components) with handle, description and archived date. Use for \"Which pro","description":"List product families (groups of products and components) with handle, description and archived date. Use for \"Which product families exist in Maxio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"}},"required":["subdomain"],"title":"list_product_familiesArguments","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_components":{"post":{"operationId":"list_components","summary":"List components (metered, quantity, on/off and prepaid add-ons) with kind, pricing scheme, unit name and unit price. Use","description":"List components (metered, quantity, on/off and prepaid add-ons) with kind, pricing scheme, unit name and unit price. Use for \"What billing components and unit prices do we have in Maxio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include archived components.","title":"Include Archived"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (1 to 200, default 20).","title":"Per Page"}},"required":["subdomain"],"title":"list_componentsArguments","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_coupons":{"post":{"operationId":"list_coupons","summary":"List coupons with code, percentage or amount, validity dates, recurring scheme and archived date. Use for \"What discount","description":"List coupons with code, percentage or amount, validity dates, recurring scheme and archived date. Use for \"What discount coupons are active in Maxio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"currency_prices":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include per-currency prices of each coupon when the site uses several currencies.","title":"Currency Prices"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (1 to 200, default 30).","title":"Per Page"}},"required":["subdomain"],"title":"list_couponsArguments","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_reason_codes":{"post":{"operationId":"list_reason_codes","summary":"List cancellation (churn) reason codes configured on the site. Use for \"What cancellation reasons can be recorded in Max","description":"List cancellation (churn) reason codes configured on the site. Use for \"What cancellation reasons can be recorded in Maxio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (1 to 200, default 20).","title":"Per Page"}},"required":["subdomain"],"title":"list_reason_codesArguments","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_invoices":{"post":{"operationId":"list_invoices","summary":"List invoices with number, status, dates and the subtotal, tax, total, paid and due amounts (customer details and line i","description":"List invoices with number, status, dates and the subtotal, tax, total, paid and due amounts (customer details and line items are left out). Use for \"Which Maxio invoices are open and what is still due\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"status":{"anyOf":[{"enum":["draft","open","paid","pending","voided","canceled","processing"],"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices in this status.","title":"Status"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices on or after this date, YYYY-MM-DD.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices on or before this date, YYYY-MM-DD.","title":"End Date"},"subscription_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only invoices of this subscription id (a number).","title":"Subscription Id"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc.","title":"Direction"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (1 to 200, default 20).","title":"Per Page"}},"required":["subdomain"],"title":"list_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/count_events":{"post":{"operationId":"count_events","summary":"Count billing events (for example signup_success or payment_success), optionally for chosen event keys or an event id ra","description":"Count billing events (for example signup_success or payment_success), optionally for chosen event keys or an event id range. Use for \"How many signup_success and payment_success events did Maxio record\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Maxio Advanced Billing (Chargify) site subdomain, the first part of <subdomain>.chargify.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated event keys to count, for example 'signup_success,payment_success'.","title":"Filter"},"since_id":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only events with an id greater than or equal to this number.","title":"Since Id"},"max_id":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only events with an id less than or equal to this number.","title":"Max Id"}},"required":["subdomain"],"title":"count_eventsArguments","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}}}}