{"openapi":"3.1.0","info":{"title":"Creem (BYOK) API","version":"0.1.0","description":"Creem (BYOK) lets an AI assistant read your own Creem data through the Creem API with a key you supply (Creem API key (production)). Read-only: 8 tools (search_products, search_subscriptions, search_transactions, search_discounts, get_stats_summary, list_meters, list_affiliates, list_credit_accounts). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-creem.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-creem/docs"},"termsOfService":"https://connectorbay.com/byok-creem/terms"},"servers":[{"url":"https://byok-creem.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-creem/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/search_products":{"post":{"operationId":"search_products","summary":"List products with name, price (in cents), currency, billing type and period, trial days, tax mode and status. Use for \"","description":"List products with name, price (in cents), currency, billing type and period, trial days, tax mode and status. Use for \"Which products and prices do I have in Creem\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["active","archived"],"type":"string"},{"type":"null"}],"default":null,"description":"Product status.","title":"Status"},"page_number":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Page Size"}},"title":"search_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/search_subscriptions":{"post":{"operationId":"search_subscriptions","summary":"List subscriptions with status, collection method, current period, next charge date, cancellation time and creation time","description":"List subscriptions with status, collection method, current period, next charge date, cancellation time and creation time. Customer details are not returned. Use for \"Which Creem subscriptions renew next and which were cancelled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_number":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Page Size"}},"title":"search_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/search_transactions":{"post":{"operationId":"search_transactions","summary":"List payment transactions with amount, amount paid, discount, tax, currency, status, type, refunded amount and the order","description":"List payment transactions with amount, amount paid, discount, tax, currency, status, type, refunded amount and the order, subscription and customer ids. Use for \"What were my latest Creem transactions and which were refunded\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions of this customer id.","title":"Customer Id"},"order_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions of this order id.","title":"Order Id"},"product_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions of this product id.","title":"Product Id"},"page_number":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Page Size"}},"title":"search_transactionsArguments","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/search_discounts":{"post":{"operationId":"search_discounts","summary":"List discount codes with type, amount or percentage, expiry, maximum redemptions, duration and how often each was redeem","description":"List discount codes with type, amount or percentage, expiry, maximum redemptions, duration and how often each was redeemed. Use for \"Which Creem discount codes are active and how often were they used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["active","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Discount status.","title":"Status"},"type":{"anyOf":[{"enum":["percentage","fixed"],"type":"string"},{"type":"null"}],"default":null,"description":"Discount type.","title":"Type"},"product_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only discounts that apply to this product id.","title":"Product Id"},"page_number":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Page Size"}},"title":"search_discountsArguments","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_stats_summary":{"post":{"operationId":"get_stats_summary","summary":"Get store metrics: totals for products, subscriptions, customers, payments, active subscriptions, revenue and MRR, plus ","description":"Get store metrics: totals for products, subscriptions, customers, payments, active subscriptions, revenue and MRR, plus a revenue series by period when a date range and interval are given. Amounts are in cents. Use for \"What is my Creem monthly recurring revenue and how much revenue did I make per week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the range in Unix milliseconds.","title":"Start Date"},"end_date":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End of the range in Unix milliseconds.","title":"End Date"},"interval":{"anyOf":[{"enum":["day","week","month"],"type":"string"},{"type":"null"}],"default":null,"description":"Group the revenue series by day, week or month.","title":"Interval"},"currency":{"anyOf":[{"enum":["EUR","USD"],"type":"string"},{"type":"null"}],"default":null,"description":"Currency of the figures.","title":"Currency"}},"title":"get_stats_summaryArguments","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_meters":{"post":{"operationId":"list_meters","summary":"List usage meters with name, event name, aggregation type and property, unit label and status. Use for \"Which usage mete","description":"List usage meters with name, event name, aggregation type and property, unit label and status. Use for \"Which usage meters are configured in Creem\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many meters to return.","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Meter id to start after, for paging.","title":"Starting After"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"Also return archived meters.","title":"Include Archived"}},"title":"list_metersArguments","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_affiliates":{"post":{"operationId":"list_affiliates","summary":"List affiliates with status, referral code, clicks, conversions and earnings. Names and emails are not returned. Use for","description":"List affiliates with status, referral code, clicks, conversions and earnings. Names and emails are not returned. Use for \"Which Creem affiliates earned the most\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_number":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Page Size"}},"title":"list_affiliatesArguments","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_credit_accounts":{"post":{"operationId":"list_credit_accounts","summary":"List customer credit accounts (prepaid balances) with name, unit label, status and the customer they belong to. Use for ","description":"List customer credit accounts (prepaid balances) with name, unit label, status and the customer they belong to. Use for \"Which customers have a prepaid credit account in Creem\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only accounts of this customer id.","title":"Customer Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many accounts to return.","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Account id to start after, for paging.","title":"Starting After"}},"title":"list_credit_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}}}}