{"openapi":"3.1.0","info":{"title":"Flexprice (BYOK) API","version":"0.1.0","description":"Flexprice (BYOK) lets an AI assistant read your own Flexprice data through the Flexprice API with a key you supply (Flexprice API key (US region)). Read-only: 8 tools (search_addons, search_coupons, list_price_units, search_entitlements, search_fx_rates, search_groups, list_tax_associations, list_coupon_associations). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-flexprice-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-flexprice-config/docs"},"termsOfService":"https://connectorbay.com/byok-flexprice-config/terms"},"servers":[{"url":"https://byok-flexprice-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-flexprice-config/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_addons":{"post":{"operationId":"search_addons","summary":"Search add-ons with name, lookup key, description, status and creation time. Read-only query despite POST. Use for \"Whic","description":"Search add-ons with name, lookup key, description, status and creation time. Read-only query despite POST. Use for \"Which add-ons can customers buy in Flexprice\".","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 results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order by creation time.","title":"Order"},"status":{"anyOf":[{"enum":["published","archived","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Only add-ons with this status.","title":"Status"}},"title":"search_addonsArguments","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_coupons":{"post":{"operationId":"search_coupons","summary":"Search coupons with code, type, percentage or amount off, cadence, redemption limit and window. Read-only query despite ","description":"Search coupons with code, type, percentage or amount off, cadence, redemption limit and window. Read-only query despite POST. Use for \"Which coupons exist in Flexprice and how often were they redeemed\".","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 results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order by creation time.","title":"Order"},"status":{"anyOf":[{"enum":["published","archived","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Only coupons with this status.","title":"Status"}},"title":"search_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_price_units":{"post":{"operationId":"list_price_units","summary":"List custom price units (for example credits) with code, symbol, base currency and conversion rate. Paged. Use for \"Whic","description":"List custom price units (for example credits) with code, symbol, base currency and conversion rate. Paged. Use for \"Which custom price units are defined in Flexprice\".","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 results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"},"status":{"anyOf":[{"enum":["published","archived","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Only price units with this status.","title":"Status"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order by creation time.","title":"Order"}},"title":"list_price_unitsArguments","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_entitlements":{"post":{"operationId":"search_entitlements","summary":"Search entitlements (what a plan, add-on or subscription includes) with feature type, usage limit, reset period, soft-li","description":"Search entitlements (what a plan, add-on or subscription includes) with feature type, usage limit, reset period, soft-limit flag and enabled flag. Read-only query despite POST. Use for \"What usage limits do my Flexprice plans grant\".","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 results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order by creation time.","title":"Order"},"status":{"anyOf":[{"enum":["published","archived","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Only entitlements with this status.","title":"Status"},"entity_type":{"anyOf":[{"enum":["PLAN","SUBSCRIPTION","ADDON"],"type":"string"},{"type":"null"}],"default":null,"description":"Only entitlements attached to this kind of entity.","title":"Entity Type"},"feature_type":{"anyOf":[{"enum":["metered","boolean","static","config"],"type":"string"},{"type":"null"}],"default":null,"description":"Only entitlements for this feature type.","title":"Feature Type"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for enabled entitlements only, false for disabled only.","title":"Is Enabled"}},"title":"search_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/search_fx_rates":{"post":{"operationId":"search_fx_rates","summary":"Search foreign exchange rates used for billing with currency pair, rate, source (fixed or market), scope and validity wi","description":"Search foreign exchange rates used for billing with currency pair, rate, source (fixed or market), scope and validity window. Read-only query despite POST. Use for \"Which FX rates does Flexprice use for USD\".","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 results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order by creation time.","title":"Order"},"status":{"anyOf":[{"enum":["published","archived","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Only rates with this status.","title":"Status"},"from_currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Only rates from this currency (lowercase three-letter code, for example 'usd').","title":"From Currency"},"to_currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Only rates to this currency (lowercase three-letter code).","title":"To Currency"},"scope":{"anyOf":[{"enum":["tenant","customer","subscription"],"type":"string"},{"type":"null"}],"default":null,"description":"Only rates with this scope.","title":"Scope"}},"title":"search_fx_ratesArguments","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_groups":{"post":{"operationId":"search_groups","summary":"Search groups (named collections of prices or features) with name, lookup key, entity type and members. Read-only query ","description":"Search groups (named collections of prices or features) with name, lookup key, entity type and members. Read-only query despite POST. Use for \"Which price or feature groups exist in Flexprice\".","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 results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order by creation time.","title":"Order"},"entity_type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups of this entity type, for example 'price' or 'feature'.","title":"Entity Type"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups with this exact name.","title":"Name"}},"title":"search_groupsArguments","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_tax_associations":{"post":{"operationId":"list_tax_associations","summary":"List where tax rates apply (customers, subscriptions, invoices or the whole tenant) with tax behavior, priority, auto-ap","description":"List where tax rates apply (customers, subscriptions, invoices or the whole tenant) with tax behavior, priority, auto-apply flag and validity window. Use for \"Which tax rates are applied to what in Flexprice\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"entity_type":{"anyOf":[{"enum":["customer","subscription","invoice","tenant","credit_note"],"type":"string"},{"type":"null"}],"default":null,"description":"Only associations on this kind of entity.","title":"Entity Type"},"entity_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only associations on this entity id.","title":"Entity Id"},"tax_rate_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only associations of this tax rate id.","title":"Tax Rate Id"}},"title":"list_tax_associationsArguments","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_coupon_associations":{"post":{"operationId":"list_coupon_associations","summary":"List coupons attached to subscriptions with coupon id, subscription, validity window and status. Paged. Use for \"Which c","description":"List coupons attached to subscriptions with coupon id, subscription, validity window and status. Paged. Use for \"Which coupons are active on Flexprice subscriptions\".","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 results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"},"active_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only currently active associations.","title":"Active Only"}},"title":"list_coupon_associationsArguments","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}}}}