Blackbaud Raiser's Edge NXT API Endpoints
The Blackbaud Raiser's Edge NXT integration uses the Blackbaud SKY API, a RESTful API that provides access to constituent, address, custom field, and webhook data within a Blackbaud Raiser's Edge NXT environment.
Base URL:
https://[API Url]
The [API Url] value is configured in the iPaaS.com Subscription Settings. The default is api.sky.blackbaud.com.
Table of Contents
Constituent Endpoints
Get a Constituent by Id (GET)
Retrieves a single constituent record by its Blackbaud system ID. Used during TO iPaaS.com transfers to retrieve the full constituent record before dispatching it to iPaaS.com.
[Base URL]/constituent/v1/constituents/{id}Search Constituents (GET)
Searches for constituents by text, email address, or lookup ID. Used during collision handling to find potential duplicate records before creating a new constituent.
[Base URL]/constituent/v1/constituents/search?search_text={searchText}&search_field={searchField}
Query parameters:
Parameter | Description |
| The value to search for |
| The field to search (e.g., |
| When |
| When |
| When |
| Maximum number of results to return (general text search only) |
Create a Constituent (POST)
Creates a new constituent record in Raiser's Edge NXT. Used during FROM iPaaS.com transfers when adding a new customer.
[Base URL]/constituent/v1/constituents
Update a Constituent (PATCH)
Updates an existing constituent record by its Blackbaud system ID. Used during FROM iPaaS.com transfers when updating an existing customer.
[Base URL]/constituent/v1/constituents/{Id}Delete a Constituent (DELETE)
Deletes a constituent record by its Blackbaud system ID. Used during FROM iPaaS.com transfers when a delete operation is triggered.
[Base URL]/constituent/v1/constituents/{Id}
Constituent Address Endpoints
Get All Addresses for a Constituent (GET)
Retrieves all addresses (including inactive) for a given constituent. Used during TO iPaaS.com constituent transfers to collect child address records. Supports pagination.
[Base URL]/constituent/v1/constituents/{constituentId}/addresses?include_inactive=true&offset={offset}&limit={limit}
Query parameters:
Parameter | Description |
| When |
| Zero-based offset for pagination |
| Number of records per page (default: 1,000) |
Get an Address by Id (GET)
Retrieves a single address record by its Blackbaud address ID. Used during standalone TO iPaaS.com address transfers (driven by address webhooks).
[Base URL]/constituent/v1/constituents/addresses/{addressId}NOTE: Blackbaud uses an asymmetric URL pattern for addresses. The single-address GET uses /constituent/v1/constituents/addresses/{id}, while PATCH and DELETE use /constituent/v1/addresses/{id}. The /constituent/v1/addresses/{id} GET returns 404.
Create an Address (POST)
Creates a new address record. The constituent ID is included in the request body. Used during FROM iPaaS.com transfers when adding a new address.
[Base URL]/constituent/v1/addresses
Update an Address (PATCH)
Updates an existing address by its Blackbaud address ID. Used during FROM iPaaS.com transfers when updating an existing address.
[Base URL]/constituent/v1/addresses/{AddressId}Delete an Address (DELETE)
Deletes an address by its Blackbaud address ID. Used during FROM iPaaS.com transfers when a delete operation is triggered.
[Base URL]/constituent/v1/addresses/{AddressId}
Custom Field Endpoints
Get Custom Fields for a Constituent (GET)
Retrieves all custom field values for a given constituent. Used during TO iPaaS.com transfers to collect custom field data alongside the constituent record. Supports pagination.
[Base URL]/constituent/v1/constituents/{id}/customfields?offset={offset}&limit={limit}
Query parameters:
Parameter | Description |
| Zero-based offset for pagination |
| Number of records per page (default: 1,000) |
Create a Custom Field (POST)
Creates a new custom field value on a constituent. The parent constituent ID is included in the request body. Used during FROM iPaaS.com transfers when adding custom field values to a newly created or updated constituent.
[Base URL]/constituent/v1/constituents/{id}/customfieldsUpdate a Custom Field (PATCH)
Updates an existing custom field value by its field ID. Only the typed value field corresponding to the custom field's type is sent in the request body (e.g., text_value, number_value, date_value). The field's category and type are immutable.
[Base URL]/constituent/v1/constituents/customfields/{fieldId}
Custom Field Category Endpoints
Get Custom Field Categories (GET)
Retrieves the list of custom field category definitions for constituents. Used during FROM iPaaS.com transfers to verify that required custom field categories exist before creating custom field values.
[Base URL]/constituent/v1/constituents/customfields/categories/details
Create a Custom Field Category (POST)
Creates a new custom field category definition. Used during FROM iPaaS.com transfers when a custom field's category does not yet exist in Raiser's Edge NXT and needs to be auto-created.
[Base URL]/customfield/customfieldcategories
Webhook Subscription Endpoints
List Webhook Subscriptions (GET)
Retrieves all webhook subscriptions. Used during webhook configuration to check for existing subscriptions before creating new ones. Supports pagination.
[Base URL]/webhook/v1/subscriptions?offset={offset}&limit={limit}Get a Webhook Subscription (POST)
Retrieves a single webhook subscription by its ID.
[Base URL]/webhook/v1/subscription/{id}Create a Webhook Subscription (POST)
Creates a new webhook subscription for a specified event type. The webhook URL and event type are included in the request body.
[Base URL]/webhook/v1/subscriptions
Delete a Webhook Subscription (DELETE)
Deletes a webhook subscription by its ID.
[Base URL]/webhook/v1/subscriptions/{id}
Authorization Endpoint
The OAuth 2.0 token endpoint is hosted on a separate domain from the API:
https://[oAuth Url]/token
The [oAuth Url] value is configured in the iPaaS.com Subscription Settings. The default is oauth2.sky.blackbaud.com.
This endpoint is used for:
Authorization code exchange: Converts the authorization code received after the subscriber approves access into an access token and refresh token (
grant_type=authorization_code).Token refresh: Exchanges a valid refresh token for a new access token without requiring subscriber interaction (
grant_type=refresh_token).
Authentication to the token endpoint uses HTTP Basic authentication with the Application ClientId and Application ClientSecret (Base64-encoded as ClientId:ClientSecret).
