{"openapi":"3.1.0","info":{"title":"Rewardful (BYOK) API","version":"0.1.0","description":"Rewardful (BYOK) lets an AI assistant read your own Rewardful data through the Rewardful API with a key you supply (API secret (Company Settings)). Read-only: 11 tools (list_campaigns, get_campaign, list_affiliates, get_affiliate, list_referrals, list_commissions, get_commission, list_payouts, get_payout, list_affiliate_links, list_affiliate_coupons). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-rewardful.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-rewardful/docs"},"termsOfService":"https://connectorbay.com/byok-rewardful/terms"},"servers":[{"url":"https://byok-rewardful.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-rewardful/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_campaigns":{"post":{"operationId":"list_campaigns","summary":"List affiliate campaigns with reward type, commission percent or amount, payout minimum, referral window and visitor, le","description":"List affiliate campaigns with reward type, commission percent or amount, payout minimum, referral window and visitor, lead and conversion totals. Use for \"What affiliate campaigns do I have in Rewardful and what do they pay\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_campaignsArguments","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_campaign":{"post":{"operationId":"get_campaign","summary":"Get one campaign's reward rules and totals. Use for \"Show the details of Rewardful campaign ceaef6d9-767e-49aa-a6ab-46c0","description":"Get one campaign's reward rules and totals. Use for \"Show the details of Rewardful campaign ceaef6d9-767e-49aa-a6ab-46c02aa79604\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Campaign id (UUID) from list_campaigns.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_campaignArguments","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, newest first, with state, campaign, and visitor, lead and conversion counts. An email filter returns ze","description":"List affiliates, newest first, with state, campaign, and visitor, lead and conversion counts. An email filter returns zero or one affiliate. Use for \"Who are my newest Rewardful affiliates\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only affiliates of this campaign id.","title":"Campaign Id"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the affiliate with this email address.","title":"Email"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; the answer's pagination object shows next_page and total_pages.","title":"Page"}},"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/get_affiliate":{"post":{"operationId":"get_affiliate","summary":"Get one affiliate: name, email, state, counts and campaign. Use for \"Show Rewardful affiliate d0ed8392-8880-4f39-8715-60","description":"Get one affiliate: name, email, state, counts and campaign. Use for \"Show Rewardful affiliate d0ed8392-8880-4f39-8715-60230f9eceab\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Affiliate id (UUID) from list_affiliates.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_affiliateArguments","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_referrals":{"post":{"operationId":"list_referrals","summary":"List referrals (visitors, leads and paying conversions that arrived through affiliate links), newest first, optionally b","description":"List referrals (visitors, leads and paying conversions that arrived through affiliate links), newest first, optionally by affiliate, conversion state, email or update time. Use for \"Which Rewardful referrals converted to paying customers recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"affiliate_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only records of this affiliate id (UUID from list_affiliates).","title":"Affiliate Id"},"conversion_state":{"anyOf":[{"enum":["visitor","lead","conversion"],"type":"string"},{"type":"null"}],"default":null,"description":"Only referrals in this state: visitor, lead or conversion.","title":"Conversion State"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only referrals whose customer has this email address.","title":"Email"},"updated_since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only referrals updated after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Updated Since"},"updated_until":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only referrals updated before this ISO 8601 time.","title":"Updated Until"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; the answer's pagination object shows next_page and total_pages.","title":"Page"}},"title":"list_referralsArguments","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_commissions":{"post":{"operationId":"list_commissions","summary":"List commissions (amounts in cents), newest first, optionally by affiliate or state, with due, paid and voided dates. Us","description":"List commissions (amounts in cents), newest first, optionally by affiliate or state, with due, paid and voided dates. Use for \"Which Rewardful commissions are due to be paid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"affiliate_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only records of this affiliate id (UUID from list_affiliates).","title":"Affiliate Id"},"state":{"anyOf":[{"enum":["due","pending","paid","voided"],"type":"string"},{"type":"null"}],"default":null,"description":"Only commissions in this state.","title":"State"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; the answer's pagination object shows next_page and total_pages.","title":"Page"}},"title":"list_commissionsArguments","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_commission":{"post":{"operationId":"get_commission","summary":"Get one commission with its sale, referral and affiliate details. Use for \"Show Rewardful commission 39e68c88-d84a-4510-","description":"Get one commission with its sale, referral and affiliate details. Use for \"Show Rewardful commission 39e68c88-d84a-4510-b3b4-43c75016a080\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Commission id (UUID) from list_commissions.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_commissionArguments","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_payouts":{"post":{"operationId":"list_payouts","summary":"List payouts (bundles of commissions per affiliate; amounts in cents), newest first, optionally by affiliate or state. U","description":"List payouts (bundles of commissions per affiliate; amounts in cents), newest first, optionally by affiliate or state. Use for \"Which Rewardful payouts are still unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"affiliate_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only records of this affiliate id (UUID from list_affiliates).","title":"Affiliate Id"},"state":{"anyOf":[{"enum":["pending","due","processing","paid"],"type":"string"},{"type":"null"}],"default":null,"description":"Only payouts in this state.","title":"State"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; the answer's pagination object shows next_page and total_pages.","title":"Page"}},"title":"list_payoutsArguments","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_payout":{"post":{"operationId":"get_payout","summary":"Get one payout: amount in cents, currency, state and paid time. Use for \"Show Rewardful payout 3b03791a-3fb5-4bd6-8ec3-6","description":"Get one payout: amount in cents, currency, state and paid time. Use for \"Show Rewardful payout 3b03791a-3fb5-4bd6-8ec3-614c9fd978ca\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Payout id (UUID) from list_payouts.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_payoutArguments","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_affiliate_links":{"post":{"operationId":"list_affiliate_links","summary":"List affiliate links with token, URL and visitor, lead and conversion counts. Use for \"What referral links do my Rewardf","description":"List affiliate links with token, URL and visitor, lead and conversion counts. Use for \"What referral links do my Rewardful affiliates have and how are they performing\".","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 results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; the answer's pagination object shows next_page and total_pages.","title":"Page"}},"title":"list_affiliate_linksArguments","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_affiliate_coupons":{"post":{"operationId":"list_affiliate_coupons","summary":"List affiliate coupon codes with lead and conversion counts and whether they are archived. Use for \"Which coupon codes a","description":"List affiliate coupon codes with lead and conversion counts and whether they are archived. Use for \"Which coupon codes are assigned to Rewardful affiliates\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"affiliate_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only records of this affiliate id (UUID from list_affiliates).","title":"Affiliate Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; the answer's pagination object shows next_page and total_pages.","title":"Page"}},"title":"list_affiliate_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}}}}