{"openapi":"3.1.0","info":{"title":"SamCart (BYOK) API","version":"0.1.0","description":"SamCart (BYOK) lets an AI assistant read your own SamCart data through the SamCart API with a key you supply (API key). Read-only: 11 tools (list_orders, list_charges, list_subscriptions, list_products, list_customers, list_refunds, list_coupons, get_daily_sales_report, get_product_sales_report, get_ltv_report, get_mrr_report). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-samcart.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-samcart/docs"},"termsOfService":"https://connectorbay.com/byok-samcart/terms"},"servers":[{"url":"https://byok-samcart.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-samcart/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_orders":{"post":{"operationId":"list_orders","summary":"List orders with status, amounts, payment method, customer ID and cart items (customer names and emails are left out). F","description":"List orders with status, amounts, payment method, customer ID and cart items (customer names and emails are left out). Filter by status, product, coupon, funnel or dates; cursor-paged. Use for \"Show my latest charged SamCart orders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Order status, or several separated by commas: pending, charged, declined, refunded, fulfilled, reversed, partially_refunded, partially_declined.","title":"Status"},"product_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders containing this product ID (ULID).","title":"Product Id"},"coupon_code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders that used this exact coupon code.","title":"Coupon Code"},"customer_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders of this customer ID (ULID).","title":"Customer Id"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders created at or after this ISO 8601 date or time, for example 2026-01-01.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders created at or before this ISO 8601 date or time.","title":"Created At Max"},"test_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for test-mode records only, false for live only.","title":"Test Mode"},"sort":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by order ID: id (oldest first) or -id (newest first).","title":"Sort"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from meta.next_cursor of the previous answer for the next page; leave empty for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Page size (1 to 100, default 25).","title":"Limit"}},"title":"list_ordersArguments","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_charges":{"post":{"operationId":"list_charges","summary":"List charges with type (one-time, recurring, limited), status (charged or refunded), amount in minor units, processor an","description":"List charges with type (one-time, recurring, limited), status (charged or refunded), amount in minor units, processor and dates. Use for \"Which SamCart charges were refunded this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Charge status, or several separated by commas: charged, refunded, partially_refunded.","title":"Status"},"type":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Charge type, or several separated by commas: one_time, recurring, limited.","title":"Type"},"order_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only charges of this order ID (ULID).","title":"Order Id"},"customer_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only charges of this customer ID (ULID).","title":"Customer Id"},"subscription_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only charges of this subscription ID (ULID).","title":"Subscription Id"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only charges created at or after this ISO 8601 date or time, for example 2026-01-01.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only charges created at or before this ISO 8601 date or time.","title":"Created At Max"},"test_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for test-mode records only, false for live only.","title":"Test Mode"},"sort":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by charge ID: id (oldest first) or -id (newest first).","title":"Sort"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from meta.next_cursor of the previous answer for the next page; leave empty for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Page size (1 to 100, default 25).","title":"Limit"}},"title":"list_chargesArguments","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_subscriptions":{"post":{"operationId":"list_subscriptions","summary":"List subscriptions with status, product, price, interval, rebill counts and next rebilling date (customer names and emai","description":"List subscriptions with status, product, price, interval, rebill counts and next rebilling date (customer names and emails are left out). Use for \"Which SamCart subscriptions are past due\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Subscription status, or several separated by commas: active, canceled, delinquent, completed, paused, invalid_processor, sca_required, deleted.","title":"Status"},"type":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"recurring or limited (or both, comma-separated).","title":"Type"},"product_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions of this product ID (ULID).","title":"Product Id"},"customer_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions of this customer ID (ULID).","title":"Customer Id"},"rebilling_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions whose next rebill is at or after this ISO 8601 date.","title":"Rebilling At Min"},"rebilling_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions whose next rebill is at or before this ISO 8601 date.","title":"Rebilling At Max"},"scheduled_to_cancel":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for subscriptions with a pending cancellation, false for those without.","title":"Scheduled To Cancel"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions created at or after this ISO 8601 date or time, for example 2026-01-01.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions created at or before this ISO 8601 date or time.","title":"Created At Max"},"test_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for test-mode records only, false for live only.","title":"Test Mode"},"sort":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by subscription ID: id (oldest first) or -id (newest first).","title":"Sort"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from meta.next_cursor of the previous answer for the next page; leave empty for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Page size (1 to 100, default 25).","title":"Limit"}},"title":"list_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_products":{"post":{"operationId":"list_products","summary":"List products with name, SKU, category (physical or digital), pricing type, price, stock, subscription terms and checkou","description":"List products with name, SKU, category (physical or digital), pricing type, price, stock, subscription terms and checkout link. Use for \"What products do I sell on SamCart and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for archived products only, false for active only.","title":"Archived"},"product_category":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"physical or digital (or both, comma-separated).","title":"Product Category"},"pricing_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pricing type, for example one_time, recurring_subscription, limited_subscription, pwyw_one_time (several allowed, comma-separated).","title":"Pricing Type"},"sku":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Exact SKU.","title":"Sku"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only products created at or after this ISO 8601 date or time, for example 2026-01-01.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only products created at or before this ISO 8601 date or time.","title":"Created At Max"},"test_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for test-mode records only, false for live only.","title":"Test Mode"},"sort":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by product ID: id (oldest first) or -id (newest first).","title":"Sort"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from meta.next_cursor of the previous answer for the next page; leave empty for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Page size (1 to 100, default 25).","title":"Limit"}},"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_customers":{"post":{"operationId":"list_customers","summary":"List customers with ID, tags, marketing consent status and dates (names, emails and phone numbers are left out). Filter ","description":"List customers with ID, tags, marketing consent status and dates (names, emails and phone numbers are left out). Filter by exact email, ID or phone to find one customer. Use for \"Find the SamCart customer with email jane@example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"email":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Exact email address (up to 25, comma-separated); matching is case-insensitive.","title":"Email"},"id":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Customer ID (ULID), up to 25 comma-separated.","title":"Id"},"phone":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Exact phone number.","title":"Phone"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only customers created at or after this ISO 8601 date or time, for example 2026-01-01.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only customers created at or before this ISO 8601 date or time.","title":"Created At Max"},"test_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for test-mode records only, false for live only.","title":"Test Mode"},"sort":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by customer ID: id (oldest first) or -id (newest first).","title":"Sort"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from meta.next_cursor of the previous answer for the next page; leave empty for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Page size (1 to 100, default 25).","title":"Limit"}},"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/list_refunds":{"post":{"operationId":"list_refunds","summary":"List refunds with amount in minor units, related charge, order and customer IDs and date. Use for \"Show recent SamCart r","description":"List refunds with amount in minor units, related charge, order and customer IDs and date. Use for \"Show recent SamCart refunds\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only refunds of this order ID (ULID).","title":"Order Id"},"charge_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only refunds of this charge ID (ULID).","title":"Charge Id"},"customer_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only refunds of this customer ID (ULID).","title":"Customer Id"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only refunds created at or after this ISO 8601 date or time, for example 2026-01-01.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only refunds created at or before this ISO 8601 date or time.","title":"Created At Max"},"test_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for test-mode records only, false for live only.","title":"Test Mode"},"sort":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by refund ID: id (oldest first) or -id (newest first).","title":"Sort"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from meta.next_cursor of the previous answer for the next page; leave empty for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Page size (1 to 100, default 25).","title":"Limit"}},"title":"list_refundsArguments","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, type (flat or percentage), amount, usage rules, validity dates and the product they apply to. Us","description":"List coupons with code, type (flat or percentage), amount, usage rules, validity dates and the product they apply to. Use for \"Which SamCart coupons are still active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"code":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Exact coupon code.","title":"Code"},"product_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only coupons restricted to this product ID (ULID).","title":"Product Id"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for archived coupons only, false for active only.","title":"Archived"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only coupons created at or after this ISO 8601 date or time, for example 2026-01-01.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only coupons created at or before this ISO 8601 date or time.","title":"Created At Max"},"sort":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by coupon ID: id (oldest first) or -id (newest first).","title":"Sort"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from meta.next_cursor of the previous answer for the next page; leave empty for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Page size (1 to 100, default 25).","title":"Limit"}},"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/get_daily_sales_report":{"post":{"operationId":"get_daily_sales_report","summary":"Daily sales report: gross sales, net revenue, orders, refunds, one-time versus recurring sales, upsell and order-bump am","description":"Daily sales report: gross sales, net revenue, orders, refunds, one-time versus recurring sales, upsell and order-bump amounts, views, visitors, conversion rate and average order value. Amounts are in minor currency units. Use for \"What were my SamCart sales per day over the last 30 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"First day included, YYYY-MM-DD (default 30 days before today).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Last day included, YYYY-MM-DD (default today; the range must not exceed 90 days).","title":"End Date"}},"title":"get_daily_sales_reportArguments","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_product_sales_report":{"post":{"operationId":"get_product_sales_report","summary":"Sales per product over a date range: gross sales, orders, refunds, views and unique visitors. Amounts are in minor curre","description":"Sales per product over a date range: gross sales, orders, refunds, views and unique visitors. Amounts are in minor currency units. Use for \"Which SamCart products sold the most in the last 30 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"First day included, YYYY-MM-DD (default 30 days before today).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Last day included, YYYY-MM-DD (default today; the range must not exceed 90 days).","title":"End Date"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Number of rows to return (1 to 100).","title":"Limit"}},"title":"get_product_sales_reportArguments","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_ltv_report":{"post":{"operationId":"get_ltv_report","summary":"Customer lifetime value by monthly cohort: new customers, revenue, initial order value and LTV after 1, 7, 65, 90 days a","description":"Customer lifetime value by monthly cohort: new customers, revenue, initial order value and LTV after 1, 7, 65, 90 days and all time. Amounts are in minor currency units. Use for \"What is the lifetime value of my SamCart customer cohorts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_month":{"anyOf":[{"maxLength":7,"type":"string"},{"type":"null"}],"default":null,"description":"First cohort month, YYYY-MM (default 11 months before this month).","title":"Start Month"},"end_month":{"anyOf":[{"maxLength":7,"type":"string"},{"type":"null"}],"default":null,"description":"Last cohort month, YYYY-MM (default this month; at most 24 months from start_month).","title":"End Month"}},"title":"get_ltv_reportArguments","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_mrr_report":{"post":{"operationId":"get_mrr_report","summary":"Current monthly recurring revenue across active subscriptions, in minor currency units. Use for \"What is my SamCart mont","description":"Current monthly recurring revenue across active subscriptions, in minor currency units. Use for \"What is my SamCart monthly recurring revenue\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_mrr_reportArguments","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}}}}