{"openapi":"3.1.0","info":{"title":"Raisely (BYOK) API","version":"0.1.0","description":"Raisely (BYOK) lets an AI assistant read your own Raisely data through the Raisely API with a key you supply (Raisely API token (bearer token)). Read-only: 7 tools (list_campaigns, get_campaign, list_profiles, get_profile, list_donations, list_subscriptions, list_designations). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-raisely.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-raisely/docs"},"termsOfService":"https://connectorbay.com/byok-raisely/terms"},"servers":[{"url":"https://byok-raisely.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-raisely/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 the fundraising campaigns of your Raisely organisation with status, mode, currency, goal and amount raised. Use for","description":"List the fundraising campaigns of your Raisely organisation with status, mode, currency, goal and amount raised. Use for \"Which Raisely campaigns are active and how much has each raised\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text to match campaign records.","title":"Q"},"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns with this status, for example 'ACTIVE'.","title":"Status"},"mode":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns with this mode, for example 'LIVE'.","title":"Mode"},"private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the full record that an authenticated admin may see.","title":"Private"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Record attribute to sort by, for example 'createdAt'; used together with order.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction when sort is given: asc or desc.","title":"Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return per page (the API default applies when omitted).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"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 by its path or uuid: status, currency, goal, total raised and dates. Use for \"How is the Spring Appeal ","description":"Get one campaign by its path or uuid: status, currency, goal, total raised and dates. Use for \"How is the Spring Appeal campaign doing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign":{"description":"Campaign uuid, path or domain, for example 'spring'.","maxLength":120,"title":"Campaign","type":"string"},"private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the full record that an authenticated admin may see.","title":"Private"}},"required":["campaign"],"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_profiles":{"post":{"operationId":"list_profiles","summary":"List the fundraising profiles (individual, team and organisation pages) of a campaign with goal, amount raised, donation","description":"List the fundraising profiles (individual, team and organisation pages) of a campaign with goal, amount raised, donation count and unique donors. Use for \"Who are the top fundraisers in the Spring Appeal\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign":{"description":"Campaign path or uuid whose profiles to list.","maxLength":80,"title":"Campaign","type":"string"},"q":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text to match profile names.","title":"Q"},"private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the full record that an authenticated admin may see.","title":"Private"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Record attribute to sort by, for example 'createdAt'; used together with order.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction when sort is given: asc or desc.","title":"Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return per page (the API default applies when omitted).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"required":["campaign"],"title":"list_profilesArguments","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_profile":{"post":{"operationId":"get_profile","summary":"Get one fundraising profile by its path or uuid with goal, total raised and donation counts. Use for \"How much has the f","description":"Get one fundraising profile by its path or uuid with goal, total raised and donation counts. Use for \"How much has the fundraiser page 'example' raised\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"profile":{"description":"Profile uuid or path, for example 'example'.","maxLength":120,"title":"Profile","type":"string"},"private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the full record that an authenticated admin may see.","title":"Private"}},"required":["profile"],"title":"get_profileArguments","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_donations":{"post":{"operationId":"list_donations","summary":"List donations with amount, currency, status, type (online or offline), campaign and profile ids; filter by campaign, pr","description":"List donations with amount, currency, status, type (online or offline), campaign and profile ids; filter by campaign, profile, status, type or currency. Donor names and e-mails are omitted. Use for \"What donations came in to the Spring Appeal this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only records of this campaign, given as its path or uuid.","title":"Campaign"},"profile":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only donations to this profile (path or uuid).","title":"Profile"},"status":{"anyOf":[{"enum":["OK","FAILED","PENDING","REFUNDED","DELETED"],"type":"string"},{"type":"null"}],"default":null,"description":"Payment status: OK, FAILED, PENDING, REFUNDED or DELETED.","title":"Status"},"type":{"anyOf":[{"enum":["ONLINE","OFFLINE"],"type":"string"},{"type":"null"}],"default":null,"description":"Donation type: ONLINE or OFFLINE.","title":"Type"},"currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Only this currency code, for example 'AUD'.","title":"Currency"},"mode":{"anyOf":[{"enum":["LIVE","TEST"],"type":"string"},{"type":"null"}],"default":null,"description":"LIVE or TEST donations.","title":"Mode"},"designation":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only this designation uuid.","title":"Designation"},"is_suspicious":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only donations flagged as suspicious.","title":"Is Suspicious"},"private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the full record that an authenticated admin may see.","title":"Private"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"createdAt","description":"Record attribute to sort by, for example 'createdAt'.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort direction: asc or desc.","title":"Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return per page (the API default applies when omitted).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"title":"list_donationsArguments","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_subscriptions":{"post":{"operationId":"list_subscriptions","summary":"List regular-giving subscriptions with amount, interval, status, next payment date and failure count; filter by campaign","description":"List regular-giving subscriptions with amount, interval, status, next payment date and failure count; filter by campaign, profile, status or mode. Donor identities are omitted. Use for \"Which Raisely monthly donors have failed payments\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only records of this campaign, given as its path or uuid.","title":"Campaign"},"profile":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions to this profile (path or uuid).","title":"Profile"},"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Subscription status, for example 'OK' or 'CANCELLED'.","title":"Status"},"mode":{"anyOf":[{"enum":["LIVE","TEST"],"type":"string"},{"type":"null"}],"default":null,"description":"LIVE or TEST subscriptions.","title":"Mode"},"source":{"anyOf":[{"enum":["ONLINE","OFFLINE"],"type":"string"},{"type":"null"}],"default":null,"description":"ONLINE or OFFLINE subscriptions.","title":"Source"},"private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the full record that an authenticated admin may see.","title":"Private"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return per page (the API default applies when omitted).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"title":"list_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/list_designations":{"post":{"operationId":"list_designations","summary":"List donation designations (funds or causes donors can choose) with name, status and external id. Use for \"Which designa","description":"List donation designations (funds or causes donors can choose) with name, status and external id. Use for \"Which designations can donors give to in Raisely\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the full record that an authenticated admin may see.","title":"Private"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return per page (the API default applies when omitted).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"title":"list_designationsArguments","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}}}}