{"openapi":"3.1.0","info":{"title":"Gameball (BYOK) API","version":"0.1.0","description":"Gameball (BYOK) lets an AI assistant read your own Gameball data through the Gameball API with a key you supply (Gameball API key). Read-only: 7 tools (get_cashback_settings, get_redemption_settings, list_vip_tiers, get_referral_settings, get_widget_configuration, get_order_transactions, get_order_points_breakdown). 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-gameball.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-gameball/docs"},"termsOfService":"https://connectorbay.com/byok-gameball/terms"},"servers":[{"url":"https://byok-gameball.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-gameball/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_cashback_settings":{"post":{"operationId":"get_cashback_settings","summary":"Get the cashback earning rules: the default rule and the per-tier rules (spend threshold and reward factors). Use for \"H","description":"Get the cashback earning rules: the default rule and the per-tier rules (spend threshold and reward factors). Use for \"How does my Gameball cashback program reward spending\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional customer id; when given, the answer reflects the rules of that customer's tier. Leave empty for the general rules.","title":"Customer Id"}},"title":"get_cashback_settingsArguments","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_redemption_settings":{"post":{"operationId":"get_redemption_settings","summary":"Get the points redemption rules: how many points buy which reward or discount, and whether each rule is active. Use for ","description":"Get the points redemption rules: how many points buy which reward or discount, and whether each rule is active. Use for \"What can customers redeem their Gameball points for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional customer id; when given, the answer reflects the rules of that customer's tier. Leave empty for the general rules.","title":"Customer Id"}},"title":"get_redemption_settingsArguments","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_vip_tiers":{"post":{"operationId":"list_vip_tiers","summary":"List the VIP tiers with the progress needed to reach each, their order and the benefits they carry. Use for \"What loyalt","description":"List the VIP tiers with the progress needed to reach each, their order and the benefits they carry. Use for \"What loyalty tiers exist in my Gameball program\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_vip_tiersArguments","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_referral_settings":{"post":{"operationId":"get_referral_settings","summary":"Get the referral program setup: the trigger event and the rewards for the referred friend and the referrer. Use for \"How","description":"Get the referral program setup: the trigger event and the rewards for the referred friend and the referrer. Use for \"How does my Gameball referral program reward friends and referrers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_referral_settingsArguments","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_widget_configuration":{"post":{"operationId":"get_widget_configuration","summary":"Get how the loyalty widget looks and behaves: colours, position, size and which features it shows. Use for \"How is my Ga","description":"Get how the loyalty widget looks and behaves: colours, position, size and which features it shows. Use for \"How is my Gameball loyalty widget configured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_widget_configurationArguments","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_order_transactions":{"post":{"operationId":"get_order_transactions","summary":"List the payment, reward and refund transactions Gameball recorded for one order, with type, amount and equivalent point","description":"List the payment, reward and refund transactions Gameball recorded for one order, with type, amount and equivalent points. Use for \"Which Gameball transactions belong to order ORD12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_id":{"description":"The order id as it was sent to Gameball (your own order number).","maxLength":200,"title":"Order Id","type":"string"}},"required":["order_id"],"title":"get_order_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/get_order_points_breakdown":{"post":{"operationId":"get_order_points_breakdown","summary":"Explain how the points of one order were earned: earned and redeemed points, order amount, currency and the per-item rat","description":"Explain how the points of one order were earned: earned and redeemed points, order amount, currency and the per-item rates. Use for \"How were the points on order ORD12345 calculated in Gameball\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_id":{"description":"The order id as it was sent to Gameball (your own order number).","maxLength":200,"title":"Order Id","type":"string"}},"required":["order_id"],"title":"get_order_points_breakdownArguments","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}}}}