{"openapi":"3.1.0","info":{"title":"Qonversion (BYOK) API","version":"0.1.0","description":"Qonversion (BYOK) lets an AI assistant read your own Qonversion data through the Qonversion API with a key you supply (project secret key (starts with sk_)). Read-only: 11 tools (list_products, list_entitlements, list_offerings, list_remote_configurations, list_segments, list_experiments, list_subscription_events, get_analytics_chart, get_realtime_card, get_customer_metrics,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-qonversion.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-qonversion/docs"},"termsOfService":"https://connectorbay.com/byok-qonversion/terms"},"servers":[{"url":"https://byok-qonversion.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-qonversion/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_products":{"post":{"operationId":"list_products","summary":"List the in-app products of the project (subscription or one-time) with their App Store and Google Play product ids, new","description":"List the in-app products of the project (subscription or one-time) with their App Store and Google Play product ids, newest first. Use for \"Which in-app products does my Qonversion project define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_cursor value of the previous answer.","title":"Starting After"},"type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only products of this type, as named by the dashboard, for example 'subscription'.","title":"Type"}},"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_entitlements":{"post":{"operationId":"list_entitlements","summary":"List the entitlement definitions (premium access levels) and the product ids that unlock each one. Use for \"What entitle","description":"List the entitlement definitions (premium access levels) and the product ids that unlock each one. Use for \"What entitlements are set up in Qonversion and which products grant them\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_cursor value of the previous answer.","title":"Starting After"}},"title":"list_entitlementsArguments","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_offerings":{"post":{"operationId":"list_offerings","summary":"List the legacy offerings (groups of products shown to users). Remote configurations replace them in newer projects. Use","description":"List the legacy offerings (groups of products shown to users). Remote configurations replace them in newer projects. Use for \"Which offerings does my Qonversion project have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_cursor value of the previous answer.","title":"Starting After"}},"title":"list_offeringsArguments","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_remote_configurations":{"post":{"operationId":"list_remote_configurations","summary":"List remote configurations with status, targeting percentage, priority and run dates (payload values are not included). ","description":"List remote configurations with status, targeting percentage, priority and run dates (payload values are not included). Use for \"Which remote configs are live in Qonversion\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_cursor value of the previous answer.","title":"Starting After"}},"title":"list_remote_configurationsArguments","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_segments":{"post":{"operationId":"list_segments","summary":"List user segments (system and custom) with the conditions that define them. Use for \"What user segments exist in my Qon","description":"List user segments (system and custom) with the conditions that define them. Use for \"What user segments exist in my Qonversion project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_cursor value of the previous answer.","title":"Starting After"}},"title":"list_segmentsArguments","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_experiments":{"post":{"operationId":"list_experiments","summary":"List all A/B experiments with status, traffic share, primary metric, goal and start and finish times. Use for \"Which Qon","description":"List all A/B experiments with status, traffic share, primary metric, goal and start and finish times. Use for \"Which Qonversion experiments are running or finished\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_experimentsArguments","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_subscription_events":{"post":{"operationId":"list_subscription_events","summary":"List recent subscription and purchase events (trial started, renewed, refunded and so on) with the customer id and time.","description":"List recent subscription and purchase events (trial started, renewed, refunded and so on) with the customer id and time. Use for \"What subscription events happened most recently in Qonversion\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many events to return (1 to 40).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of events to skip (0 to 100000).","title":"Offset"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Order by event time: desc (newest first) or asc.","title":"Sort Order"}},"title":"list_subscription_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}},"/v1/tools/get_analytics_chart":{"post":{"operationId":"get_analytics_chart","summary":"Get a time series for one subscription metric (revenue, MRR, active subscriptions, trials, conversion, refunds) over a p","description":"Get a time series for one subscription metric (revenue, MRR, active subscriptions, trials, conversion, refunds) over a period. Use for \"How did my monthly recurring revenue develop over the last 90 days in Qonversion\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chart_code":{"description":"Metric to chart, for example 'mrr', 'proceeds', 'active-subscriptions' or 'trial-to-paid'.","enum":["proceeds","sales","refunds","refund-rate","arpu","arppu","mrr","arr","mrr-movement","arr-movement","active-subscriptions","new-subscriptions","paid-subscriptions-movement","subscriptions-overview","subscription-cancellation","free-trials","active-trials","trials-movement","trial-cancellation","trial-to-paid","users-overview","user-to-trial","user-to-paid"],"title":"Chart Code","type":"string"},"from_time":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds (default 7 days before to_time).","title":"From Time"},"to_time":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds (default now).","title":"To Time"},"unit":{"anyOf":[{"enum":["hour","day","week","month"],"type":"string"},{"type":"null"}],"default":"day","description":"Bucket size: hour, day, week or month.","title":"Unit"},"environment":{"anyOf":[{"maximum":1,"minimum":0,"type":"integer"},{"type":"null"}],"default":1,"description":"Data environment: 1 for production, 0 for sandbox.","title":"Environment"},"segmentation":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Attribute to split the series by, for example 'country' or 'target_platform'.","title":"Segmentation"},"currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Three-letter currency code for money metrics (default USD).","title":"Currency"}},"required":["chart_code"],"title":"get_analytics_chartArguments","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_realtime_card":{"post":{"operationId":"get_realtime_card","summary":"Get today-so-far versus yesterday counters: trials, subscriptions, in-app purchases and tracked revenue. Use for \"How ma","description":"Get today-so-far versus yesterday counters: trials, subscriptions, in-app purchases and tracked revenue. Use for \"How many trials and subscriptions did I get today in Qonversion\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"environment":{"anyOf":[{"maximum":1,"minimum":0,"type":"integer"},{"type":"null"}],"default":1,"description":"Data environment: 1 for production, 0 for sandbox.","title":"Environment"},"currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Three-letter currency code for the revenue figure (default USD).","title":"Currency"}},"title":"get_realtime_cardArguments","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_metrics":{"post":{"operationId":"get_customer_metrics","summary":"Get aggregated customer counts for the project, optionally for one environment or a search text. Use for \"How many custo","description":"Get aggregated customer counts for the project, optionally for one environment or a search text. Use for \"How many customers does my Qonversion project have in production\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"environment":{"anyOf":[{"maximum":1,"minimum":0,"type":"integer"},{"type":"null"}],"default":1,"description":"Data environment: 1 for production, 0 for sandbox.","title":"Environment"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search customers by, for example part of a customer id.","title":"Search"}},"title":"get_customer_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/list_analytics_currencies":{"post":{"operationId":"list_analytics_currencies","summary":"List the three-letter currency codes the analytics endpoints accept. Use for \"Which currencies can I use for Qonversion ","description":"List the three-letter currency codes the analytics endpoints accept. Use for \"Which currencies can I use for Qonversion analytics\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"environment":{"anyOf":[{"maximum":1,"minimum":0,"type":"integer"},{"type":"null"}],"default":1,"description":"Data environment: 1 for production, 0 for sandbox.","title":"Environment"}},"title":"list_analytics_currenciesArguments","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}}}}