Raisely integration for AI agents.
Raisely integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Raisely tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real Raisely actions, managed and audited.
Your user connects Raisely once; your agent can then raisely is the sophisticated fundraising platform chosen by non-profits and charities around the world to take donations, run events, sell tickets, and engage donors. All in one seamless software platform — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants Raisely access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported Raisely tools.
101 tools are generated from the published Raisely catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 101 tools. All published catalog entries are included in this page's server-rendered HTML.
- media
- Add an image to the campaign media library. Accepts either a `multipart/form-data` upload or an `application/json` body with a `url` to fetch server-side. Accepted formats: PNG, JPG, GIF, WebP, SVG (max 20 MB). SVG files are sanitised before upload. An optional `folder` field (default: `"uploads"`) organises the upload; only lowercase letters, numbers, hyphens, and underscores are accepted. On success the new item is prepended to the campaign media library. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').all('media').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Media
- media
- Add an image to the organisation media library. Accepts either a `multipart/form-data` upload or an `application/json` body with a `url` to fetch server-side. Accepted formats: PNG, JPG, GIF, WebP, SVG (max 20 MB). SVG files are sanitised before upload. An optional `folder` field (default: `"uploads"`) organises the upload; only lowercase letters, numbers, hyphens, and underscores are accepted. On success the new item is prepended to the organisation media library. #### For custom components: `RaiselyComponents.api.one('organisations', '{organisation}').all('media').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Media
- remove campaign
- Deletes the campaign #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').delete(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- remove media
- Remove a media item from the campaign media library by UUID. The underlying file is not deleted. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').one('media', '{uuid}').delete('{uuid}', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Media
- remove donation
- Delete a donation record. Only possible for OFFLINE donations. #### For custom components: `RaiselyComponents.api.one('donations', '{uuid}').delete(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- remove exercise log
- Delete the specified **exercise log**. #### For custom components: `RaiselyComponents.api.one('exercise-logs', '{uuid}').delete(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Exercise Logs
- remove interaction
- Deletes an existing custom **interaction**. (Cannot delete system generated or read only interactions) #### For custom components: `RaiselyComponents.api.one('interactions', '{uuid}').delete(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interactions
- remove media
- Remove a media item from the organisation media library by UUID. The underlying file is not deleted. #### For custom components: `RaiselyComponents.api.one('organisations', '{organisation}').one('media', '{uuid}').delete('{uuid}', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Media
- remove post
- Delete the specified **post**. #### For custom components: `RaiselyComponents.api.one('posts', '{path}').delete(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Posts
- remove profile
- Archives a profile. Archived profiles are hidden from the campaign. #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').delete(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- remove record
- Removes an assigned tag from the specified record #### For custom components: `RaiselyComponents.api.one('tags', '{uuid}').one('records', '{recordUuid}').delete('{recordUuid}', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Tags
- remove webhook
- Delete a webhook #### For custom components: `RaiselyComponents.api.one('webhooks', '{uuid}').delete(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Webhooks
- get all
- Raisely OpenAPI specification #### For custom components: `RaiselyComponents.api.all('api-docs').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Util
- get all
- Authenticate a token to confirm it's valid, check the logged-in user, or confirm token privileges. You can use /authenticate to find the organisation UUID of the token you are using, which may be useful in future requests. #### For custom components: `RaiselyComponents.api.all('authenticate').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Authentication
- get campaign
- Retrieve a specific **campaign**. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- media
- Returns all images in the campaign media library. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').all('media').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Media
- get all
- Returns a list of campaigns you've previously created. The campaigns will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('campaigns').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- all designations
- Returns designations associated with a campaign, ordered by sortOrder. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').get('designations', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Designations
- all donations
- Returns a list of donations you've previously created. The donations will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').get('donations', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- all products
- Returns all products in a campaign #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').get('products', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Products
- get campaign profile
- Return the campaign profile <br><br> The campaign profile is the top level profile for all profiles in the campaign. It is hidden from the fundraising website, but will have the same name, path, and goal as your campaign. All profiles that don't otherwise belong to a team belong to the campaign profile, and their `parentUuid` field will refer to the campaign profile. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').get('profile', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- all profiles
- Returns all fundraising profiles in a campaign #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').get('profiles', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- all subscriptions
- Returns a list of subscriptions you've previously created. The subscriptions will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').get('subscriptions', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- get all
- Returns a list of designations you've previously created. The designations will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('designations').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Designations
- get donation
- Retrieve a specific **donation**. #### For custom components: `RaiselyComponents.api.one('donations', '{uuid}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- get all
- Returns a list of donations you've previously created. The donations will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('donations').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- all receipts
- Returns a list of the receipts attached to this donation #### For custom components: `RaiselyComponents.api.one('donations', '{uuid}').get('receipts', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- get exercise log
- Retrieve a specific **exercise log**. #### For custom components: `RaiselyComponents.api.one('exercise-logs', '{uuid}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Exercise Logs
- get all
- Returns a list of exercise logs you've previously created. The exercise logs will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('exercise-logs').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Exercise Logs
- get interaction
- Retrieve a specific **interaction**. #### For custom components: `RaiselyComponents.api.one('interactions', '{uuid}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interactions
- get all
- Returns all of the **interaction categories** in the organisation #### For custom components: `RaiselyComponents.api.all('interaction_categories').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interaction Categories
- get all
- Returns all **interactions** #### For custom components: `RaiselyComponents.api.all('interactions').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interactions
- get order
- Returns a specific order #### For custom components: `RaiselyComponents.api.one('orders', '{uuid}').get('{uuid}', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Orders
- get all
- Returns all orders in a campaign #### For custom components: `RaiselyComponents.api.all('orders').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Orders
- media
- Returns all images in the organisation media library. #### For custom components: `RaiselyComponents.api.one('organisations', '{organisation}').all('media').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Media
- get post
- Retrieve a specific **post**. #### For custom components: `RaiselyComponents.api.one('posts', '{path}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Posts
- get all
- Returns a list of posts you've previously created. The posts will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('posts').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Posts
- get product
- Returns a specific product #### For custom components: `RaiselyComponents.api.one('products', '{uuid}').get('{uuid}', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Products
- get profile
- Returns a specific profile #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- get all
- Returns all fundraising profiles in a campaign #### For custom components: `RaiselyComponents.api.all('profiles').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- all donations
- Returns a list of donations you've previously created. The donations will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').get('donations', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- all members
- Returns list of all members of a team profile #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').all('members').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- all posts
- Returns a list of posts you've previously created. The posts will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').get('posts', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- get promo code
- Returns a specific promo code #### For custom components: `RaiselyComponents.api.one('promo_codes', '{uuid}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Promo Codes
- get all
- Returns all promo codes in a campaign #### For custom components: `RaiselyComponents.api.all('promo_codes').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Promo Codes
- get all
- Returns a list of segments you've previously created. The segments will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('segments').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Segments
- all users
- Get the users matched by the segment #### For custom components: `RaiselyComponents.api.one('segments', '{uuid}').get('users', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Segments
- get subscription
- Retrieve a specific **subscription**. #### For custom components: `RaiselyComponents.api.one('subscriptions', '{uuid}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Subscriptions
- get all
- Returns a list of subscriptions you've previously created. The subscriptions will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('subscriptions').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Subscriptions
- all donations
- Returns a list of donations you've previously created. The donations will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.one('subscriptions', '{uuid}').get('donations', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Subscriptions
- get tag
- Retrieve a specific **tag**. #### For custom components: `RaiselyComponents.api.one('tags', '{uuid}').get('{uuid}', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Tags
- get all
- Retrieve the list of tags. **NOTE** Unlike other endpoints, any tags flagged as private will not be present unless the request includes private=1 #### For custom components: `RaiselyComponents.api.all('tags').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Tags
- all records
- Get all Raisely records that are assigned the provided Tag #### For custom components: `RaiselyComponents.api.one('tags', '{uuid}').all('records').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Tags
- get user
- Retrieve a specific **user**. #### For custom components: `RaiselyComponents.api.one('users', '{uuid}').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- get all
- Returns a list of users you've previously created. The users will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.all('users').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- all donations
- Returns a list of donations you've previously created. The donations will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.one('users', '{uuid}').get('donations', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- all interactions
- Returns all **interactions** for a given user #### For custom components: `RaiselyComponents.api.one('users', '{uuid}').get('interactions', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interactions
- all profiles
- Returns all fundraising profiles owned by the provided user #### For custom components: `RaiselyComponents.api.one('users', '{uuid}').get('profiles', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- all subscriptions
- Returns a list of subscriptions you've previously created. The subscriptions will be returned in descending order of when they were created, unless you specify otherwise. #### For custom components: `RaiselyComponents.api.one('users', '{uuid}').get('subscriptions', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- profile url
- Helper endpoint to verify if a profile url is taken for a given campaign, and make suggestions if the path queried is not available #### For custom components: `RaiselyComponents.api.all('utils').get('profile-url', params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- get all
- Retrieve the list of webhooks configured for the campaign #### For custom components: `RaiselyComponents.api.all('webhooks').get(params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Webhooks
- update campaign
- Updates the campaign with the new data #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- update config
- Update a subkey of the config. This will overwrite the entire value of the key #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').one('config', '{attribute}').patch('{attribute}', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- update donation
- Update the specified donation #### For custom components: `RaiselyComponents.api.one('donations', '{uuid}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- move
- Move a donation to a different profile (the profile may be located in a different campaign) #### For custom components: `RaiselyComponents.api.one('donations', '{uuid}').patch('move', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- update exercise log
- Updates an existing exercise log #### For custom components: `RaiselyComponents.api.one('exercise-logs', '{uuid}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Exercise Logs
- update interaction
- Updates a specific **interaction**. Only interaction.details may be updated (Cannot delete system generated or read only interactions) #### For custom components: `RaiselyComponents.api.one('interactions', '{uuid}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interactions
- pin
- Pin / Unpin an **interaction** #### For custom components: `RaiselyComponents.api.one('interactions', '{uuid}').patch('pin', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interactions
- update post
- Update the specified **post**. #### For custom components: `RaiselyComponents.api.one('posts', '{path}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Posts
- update profile
- Updates a specific **profile** #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- join
- Joins the specified profile to a a new parent #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').patch('join', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- leave
- Leaves the team profile (joins the campaign profile) #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').patch('leave', data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- update promo code
- Updates a specific promo code #### For custom components: `RaiselyComponents.api.one('promo_codes', '{uuid}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Promo Codes
- update subscription
- Update the subscription If you update the frequency or count for a donation, the nextPayment will be recalculated (unless you also update the nextPayment) based on the last donation or the date the subscription was created If nextPayment is set to a time in the past, it will be set to the current time #### For custom components: `RaiselyComponents.api.one('subscriptions', '{uuid}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Subscriptions
- update user
- Update the specified **user**. #### For custom components: `RaiselyComponents.api.one('users', '{uuid}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- update webhook
- Update the specified **webhook**. #### For custom components: `RaiselyComponents.api.one('webhooks', '{uuid}').patch(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Webhooks
- add campaign
- Create a new or cloned campaign #### For custom components: `RaiselyComponents.api.all('campaigns').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- register
- Registers a user and creates a fundraisng profile for them and also (optionally) creates or adds them to a team, makes a donation or registration fee. **Campaign API key authentication:** When the request is authenticated with a campaign secret key (Authorization header, Bearer raisely-sk-...) and the explicit-user rollout is enabled for the organisation, you must supply data.user with the registrant's details (email, firstName, lastName, password, etc.). User fields must be nested under data.user — top-level data.firstName, data.email, and similar fields are not read. Omitting data.user returns 400 invalid value. The registrant may be any user (matched by email within the campaign's organisation), including the API key owner. JWT or session authentication is unchanged (a logged-in user may register without data.user). If creation is successful, the response will include a token and accessToken. However, if a user with that email already exists in the campaign, the user will be sent an email to confirm that they want to add the profile to their account. The records are created simultaneously in full or not at all. If there is a problem with the donation or profile, then all records will not be created. The exception is for donations. If the Stripe gateway is using the PAYMENT_INTENT method, then the donation must already be created to facilitate payment, the donation is completed (or fails) as part of the registration. If the registration is successful, the donation record will be assigned to the profile once it's created. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').all('register').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Authentication
- restore
- Restores the campaign #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').all('restore').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Campaigns
- check user
- Check if a user is already registered to this campaign with a specific email address. This is useful for validation in a sign-up form to prompt an existing user to log in. #### For custom components: `RaiselyComponents.api.all('check-user').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Authentication
- add donation
- Record a donation processed elsewhere in Raisely. These donations are recorded with a type of `OFFLINE` in Raisely to indicate they were processed externally. **Note:** Adding an offline donation does not automatically send a receipt. You need to call the `resend` API to issue a receipt for an offline donation after it has been added to Raisely. #### For custom components: `RaiselyComponents.api.all('donations').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- match
- Match a donation using the specified matched giving configuration #### For custom components: `RaiselyComponents.api.one('donations', '{uuid}').all('match').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- resend
- Send, or re-send, a donation receipt. If the donation was already receipted in Raisely, calling this API will mark the previous receipt as void and re-issue a new receipt. Optionally include an email in the API payload to send the receipt to an alternate email address, without updating the donation record. **Offline Donations** If you have added an offline donation, Raisely (out of an abundance of caution) doesn't automatically send a receipt. Calling this API after you've added an offline donation will trigger a receipt to be generated and sent to the donor. #### For custom components: `RaiselyComponents.api.one('donations', '{uuid}').all('resend').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Donations
- add exercise log
- Creates a new **exercise log** #### For custom components: `RaiselyComponents.api.all('exercise-logs').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Exercise Logs
- add interaction
- Creates a new **interaction** #### For custom components: `RaiselyComponents.api.all('interactions').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Interactions
- login
- Exchange an email and password for a token used for future requests. This endpoint can be used by admin or participant accounts. If you're logging in a participant, an organisationUuid must be present in the body. #### For custom components: `RaiselyComponents.api.all('login').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Authentication
- logout
- Invalidate the token used by this request #### For custom components: `RaiselyComponents.api.all('logout').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Authentication
- resend
- Resend an order receipt #### For custom components: `RaiselyComponents.api.one('orders', '{uuid}').all('resend').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Orders
- add post
- Create a new **post**. **Specifying the post author (explicit-user rollout):** When the explicit-user rollout is enabled for the organisation, data.userUuid is an optional author override. Campaign API key authentication (Authorization header, Bearer raisely-sk-...) and organisation/campaign admins may supply data.userUuid to author the post on behalf of any user in the same organisation; a userUuid from another organisation returns 404 not found. data.userUuid is never required — when it is omitted (or supplied by a non-admin who cannot override), the author defaults to the authenticated user. Non-admin callers cannot author as someone else. #### For custom components: `RaiselyComponents.api.all('posts').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Posts
- add member
- Create a new **member** on the parent profile. **Owner of the member profile:** data.userUuid is optional. When supplied it identifies the existing user who will own the member profile; under campaign API key authentication (Authorization header, Bearer raisely-sk-...) with the explicit-user rollout enabled, the user must belong to the same organisation as the campaign — a userUuid from another organisation returns 404 not found. When data.userUuid is omitted, the member defaults to the authenticated user (for a campaign API key that is the key owner). #### For custom components: `RaiselyComponents.api.one('profiles', '{path}').all('members').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Profiles
- add promo code
- Creates a new promo code #### For custom components: `RaiselyComponents.api.all('promo_codes').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Promo Codes
- signup
- Sign up a new user to your campaign. If the user you are registering is unknown you'll receive a token for the new user to use for future authenticated requests. If the user already exists in your organisation's database, they will be sent the Account Confirmation email and the API will return a human-friendly message. <br> _Note: Using /signup won't create a fundraising profile. You can create a profile later, or you can use /register. We recommend using /register when signing up a new fundraiser to a campaign._ #### For custom components: `RaiselyComponents.api.all('signup').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Authentication
- add subscription
- Creates a new subscription (otherwise known as a regular donation) in Raisely. External applications may use this endpoint to import regular donations created offline into Raisely, as long as you have tokenised card details in Stripe. To create a new subscription, you need to have a **customer** and **card** in Stripe, then set the `source` to `OFFLINE`. If you omit the `nextPayment` date, a payment will be taken immediately, otherwise it will be taken after the date specified. This endpoint must be authenticated. *Note: Raisely charges processing fees for imported subscriptions. Contact us for more information.* #### For custom components: `RaiselyComponents.api.all('subscriptions').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Subscriptions
- add record
- Assigns the provided tag to the specified records #### For custom components: `RaiselyComponents.api.one('tags', '{uuid}').all('records').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Tags
- add user
- Create a new **user** #### For custom components: `RaiselyComponents.api.all('users').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- add access token
- Generates a fresh short-lived access token for an active non-admin user. Public/API callers require authenticated ORG_ADMIN or campaign API-key access for the target user's organisation. #### For custom components: `RaiselyComponents.api.one('users', '{uuid}').all('access-tokens').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- access tokens batch
- Generates short-lived access tokens for up to 1,000 active non-admin users in a single request. Requires ORG_ADMIN or campaign API-key access. The server always sets context to 'public_api_bulk'; callers may not supply their own context. Duplicate UUIDs in the input are deduplicated (first occurrence wins). Results are returned in the same order as the deduplicated input array, with per-user error codes for any user that could not be issued a token. #### For custom components: `RaiselyComponents.api.all('users').all('access-tokens').all('batch').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- magic link
- Request a magic link email for passwordless login. If the email matches an existing user, a magic link email will be sent. The response is always generic to prevent user enumeration. #### For custom components: `RaiselyComponents.api.all('users').all('magic-link').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Authentication
- upsert
- Upsert a user record, optionally tagging and creating an interaction. Useful for accepting form submissions. Requires a campaign UUID to be provided as a query parameter. #### For custom components: `RaiselyComponents.api.all('users').all('upsert').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Users
- add webhook
- Add a new webhook to your Raisely account. By default, this webhook will trigger for events across all campaigns in your Raisely account. Specify a `campaignUuid` if you'd like to restrict it to one campaign. #### For custom components: `RaiselyComponents.api.all('webhooks').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Webhooks
- add media
- Upload one or more files to the **media library** of your campaign. #### For custom components: `RaiselyComponents.api.one('campaigns', '{campaign}').one('media', '{folderUuid}').post(data = {}, params = {}, headers = {}) => Promise<{result}>` :fa-gears: See [Restie Response Data](https://github.com/raisely/restie#reading-and-handling-responses) for a more detailed overview of responses through the client wrapper
- Media
Raisely integration, answered
- How do AI agents use Raisely through Open Connector?
- Your user connects Raisely once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Raisely tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a Raisely MCP server?
- Yes. Open Connector can serve Raisely as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Raisely actions with credentials injected server-side.
- Where do Raisely credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents Raisely — keep the keys.
Open source, self-hostable, with Raisely credentials that never leave your infrastructure. Run it from source today.