{"openapi":"3.1.0","info":{"title":"ChartMogul (BYOK) API","version":"0.1.0","description":"ChartMogul (BYOK) lets an AI assistant read your own ChartMogul data through the ChartMogul API with a key you supply (ChartMogul API key). Read-only: 11 tools (get_account, get_key_metrics, get_metric_series, list_activities, list_customers, get_customer, list_customer_subscriptions, list_customer_invoices, list_invoices, list_plans, list_data_sources). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-chartmogul.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-chartmogul/docs"},"termsOfService":"https://connectorbay.com/byok-chartmogul/terms"},"servers":[{"url":"https://byok-chartmogul.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-chartmogul/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_account":{"post":{"operationId":"get_account","summary":"Show the ChartMogul account the key belongs to: name, workspace, account currency, time zone and week start. Use for \"Wh","description":"Show the ChartMogul account the key belongs to: name, workspace, account currency, time zone and week start. Use for \"Which ChartMogul account and currency am I connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_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_key_metrics":{"post":{"operationId":"get_key_metrics","summary":"Get MRR, ARR, customer churn, MRR churn, LTV, customer count, ASP and ARPA together for each period, with a summary vers","description":"Get MRR, ARR, customer churn, MRR churn, LTV, customer count, ASP and ARPA together for each period, with a summary versus the previous period. Money amounts are integer cents in the account currency. Use for \"Give me a summary of my key SaaS metrics for the last 3 months\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"description":"First day of the period, ISO 8601 date such as 2026-01-01.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"Last day of the period, ISO 8601 date such as 2026-09-30.","maxLength":10,"title":"End Date","type":"string"},"interval":{"anyOf":[{"enum":["day","week","month","quarter","year"],"type":"string"},{"type":"null"}],"default":"month","description":"Time bucket: day, week, month, quarter or year.","title":"Interval"},"geo":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated ISO country codes to filter by, for example US,GB.","title":"Geo"},"plans":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated plan UUIDs, external ids or names to filter by.","title":"Plans"}},"required":["start_date","end_date"],"title":"get_key_metricsArguments","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_metric_series":{"post":{"operationId":"get_metric_series","summary":"Get one ChartMogul metric over time: mrr (with new, expansion, contraction, churn and reactivation), arr, customer-count","description":"Get one ChartMogul metric over time: mrr (with new, expansion, contraction, churn and reactivation), arr, customer-count, customer-churn-rate, mrr-churn-rate, ltv, arpa or asp. Money amounts are integer cents in the account currency. Use for \"Show my MRR movements by month for 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric":{"description":"Which metric: mrr, arr, customer-count, customer-churn-rate, mrr-churn-rate, ltv, arpa or asp.","enum":["mrr","arr","customer-count","customer-churn-rate","mrr-churn-rate","ltv","arpa","asp"],"title":"Metric","type":"string"},"start_date":{"description":"First day of the period, ISO 8601 date such as 2026-01-01.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"Last day of the period, ISO 8601 date such as 2026-09-30.","maxLength":10,"title":"End Date","type":"string"},"interval":{"anyOf":[{"enum":["day","week","month","quarter","year"],"type":"string"},{"type":"null"}],"default":"month","description":"Time bucket: day, week, month, quarter or year.","title":"Interval"},"geo":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated ISO country codes to filter by, for example US,GB.","title":"Geo"},"plans":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated plan UUIDs, external ids or names to filter by.","title":"Plans"}},"required":["metric","start_date","end_date"],"title":"get_metric_seriesArguments","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_activities":{"post":{"operationId":"list_activities","summary":"List MRR movement events (new business, expansion, contraction, churn, reactivation) with customer, plan, date and the c","description":"List MRR movement events (new business, expansion, contraction, churn, reactivation) with customer, plan, date and the change in MRR in cents. Use for \"Which customers churned in the last 30 days and how much MRR was lost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only activities on or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only activities on or before this ISO 8601 time.","title":"End Date"},"type":{"anyOf":[{"enum":["new_biz","reactivation","expansion","contraction","churn"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this activity type.","title":"Type"},"order":{"anyOf":[{"enum":["date","-date"],"type":"string"},{"type":"null"}],"default":"-date","description":"date (oldest first) or -date (newest first).","title":"Order"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's answer; leave empty for the first page.","title":"Cursor"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Activities per page (1 to 200).","title":"Per Page"}},"title":"list_activitiesArguments","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_customers":{"post":{"operationId":"list_customers","summary":"List customers (up to 200 per page), optionally filtered by email, status, billing system or source, with status, MRR an","description":"List customers (up to 200 per page), optionally filtered by email, status, billing system or source, with status, MRR and ARR in cents. Use for \"Find the ChartMogul customer with email buyer@example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact customer email to look up.","title":"Email"},"status":{"anyOf":[{"enum":["New_Lead","Working_Lead","Qualified_Lead","Unqualified_Lead","Active","Past_Due","Cancelled"],"type":"string"},{"type":"null"}],"default":null,"description":"Lead or subscription status: New_Lead, Working_Lead, Qualified_Lead, Unqualified_Lead, Active, Past_Due or Cancelled.","title":"Status"},"system":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Billing system, case-sensitive, for example Stripe, Recurly or Custom.","title":"System"},"data_source_uuid":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only customers of this source UUID (from list_data_sources).","title":"Data Source Uuid"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's answer; leave empty for the first page.","title":"Cursor"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Items per page (1 to 200).","title":"Per Page"}},"title":"list_customersArguments","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_customer":{"post":{"operationId":"get_customer","summary":"Get one customer by its ChartMogul UUID with status, location, MRR, ARR and billing system. Use for \"Show ChartMogul cus","description":"Get one customer by its ChartMogul UUID with status, location, MRR, ARR and billing system. Use for \"Show ChartMogul customer cus_de305d54-75b4-431b-adb2-eb6b9e546012\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_uuid":{"description":"ChartMogul customer UUID, starting with cus_.","maxLength":200,"title":"Customer Uuid","type":"string"}},"required":["customer_uuid"],"title":"get_customerArguments","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_customer_subscriptions":{"post":{"operationId":"list_customer_subscriptions","summary":"List the subscriptions of one customer with plan, quantity, status, billing cycle, MRR, ARR and dates (cents). Use for \"","description":"List the subscriptions of one customer with plan, quantity, status, billing cycle, MRR, ARR and dates (cents). Use for \"What subscriptions does customer cus_3f6f53d3 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_uuid":{"description":"ChartMogul customer UUID, starting with cus_.","maxLength":200,"title":"Customer Uuid","type":"string"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's answer; leave empty for the first page.","title":"Cursor"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Items per page (1 to 200).","title":"Per Page"}},"required":["customer_uuid"],"title":"list_customer_subscriptionsArguments","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_customer_invoices":{"post":{"operationId":"list_customer_invoices","summary":"List the invoices of one customer with dates, status, currency and line items (amounts in cents). Use for \"Show the invo","description":"List the invoices of one customer with dates, status, currency and line items (amounts in cents). Use for \"Show the invoices for customer cus_f466e33d\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_uuid":{"description":"ChartMogul customer UUID, starting with cus_.","maxLength":200,"title":"Customer Uuid","type":"string"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's answer; leave empty for the first page.","title":"Cursor"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Items per page (1 to 200).","title":"Per Page"},"validation_type":{"anyOf":[{"enum":["valid","invalid","all"],"type":"string"},{"type":"null"}],"default":"valid","description":"Which invoices: valid (default), invalid or all.","title":"Validation Type"}},"required":["customer_uuid"],"title":"list_customer_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/list_invoices":{"post":{"operationId":"list_invoices","summary":"List invoices across customers, optionally for one customer, source or external id, with dates, status, currency and lin","description":"List invoices across customers, optionally for one customer, source or external id, with dates, status, currency and line items (amounts in cents). Use for \"List my latest ChartMogul invoices\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_uuid":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices of this customer UUID.","title":"Customer Uuid"},"data_source_uuid":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices of this source UUID.","title":"Data Source Uuid"},"external_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only the invoice with this external id.","title":"External Id"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's answer; leave empty for the first page.","title":"Cursor"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Items per page (1 to 200).","title":"Per Page"},"validation_type":{"anyOf":[{"enum":["valid","invalid","all"],"type":"string"},{"type":"null"}],"default":"valid","description":"Which invoices: valid (default), invalid or all.","title":"Validation Type"}},"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/list_plans":{"post":{"operationId":"list_plans","summary":"List billing plans with interval, source and external id. Use for \"What plans exist in my ChartMogul account\".","description":"List billing plans with interval, source and external id. Use for \"What plans exist in my ChartMogul account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"data_source_uuid":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only plans of this source UUID.","title":"Data Source Uuid"},"system":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Billing system, case-sensitive, for example Stripe or Custom.","title":"System"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's answer; leave empty for the first page.","title":"Cursor"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Items per page (1 to 200).","title":"Per Page"}},"title":"list_plansArguments","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_data_sources":{"post":{"operationId":"list_data_sources","summary":"List the data sources (billing systems and custom sources) connected to ChartMogul with their type, status and creation ","description":"List the data sources (billing systems and custom sources) connected to ChartMogul with their type, status and creation time. Use for \"Which billing systems are connected to ChartMogul\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"system":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only sources of this system, for example Stripe or Custom.","title":"System"}},"title":"list_data_sourcesArguments","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}}}}