The Donor record
The core fields on a Donor record:Identity
Top-level contact
The top-level
email and phone are convenience accessors. The authoritative storage for contact methods is in the sub-resource collections below — those collections support multiple entries per donor and explicit primary-marking.
Sub-resource collections
Each entry in these collections is itself a typed sub-resource with its own ID and its own dedicated endpoints — see Sub-resource endpoints below.
Lifecycle and audit
External system linkage
The
crmKey fields are the linkage Raise uses to keep records aligned with CRM+ when a customer runs both products. Partner integrations don’t typically write these directly — they’re populated by the platform-level sync. See How Raise Data Flows to CRM+.
Reading Donors
Raise exposes three patterns for reading Donor records, each suited to a different use:
For list-and-export workflows,
Donor/list with IncludeDetails=false is the cheapest. For complex segmentation, Donor/query with structured filters. For interactive type-ahead in a UI, Donor/search.
Reading related records for a donor
Several donor sub-resources have dedicated paginated endpoints:
The statistics endpoints aggregate the donor’s giving over time — useful for donor analytics workflows without needing to query the full Gift history.
Creating and updating Donors
Donor records can be created directly via the API. Most partner integrations don’t create Donors directly — they let thePOST /api/Raise/give donation submission path create donors as part of the donation flow. But for integrations syncing donors from another system without a corresponding gift, the direct create endpoint is available.
The Raise spec does not show a dedicated top-level
POST /api/Donor endpoint. Donor creation in practice happens either through the donation submission path (POST /api/Raise/give) or through dedicated bulk-import tools in the admin UI. For partner integrations that need to create donors independently of a gift, confirm the current approach with the platform team — the spec’s donor-creation surface may evolve as part of the v2 overhaul.Updating a Donor
PUT /api/Donor/{id} and PATCH /api/Donor/{id} update a donor:
The dual
PUT/PATCH support on the same endpoint is unusual — most Raise endpoints expose just one. For partner integrations, prefer PATCH for partial updates to minimize the risk of inadvertently clearing fields with a full-replace PUT.
cURL
Updating notes
Donor notes have a dedicated update endpoint separate from the main donor PUT:cURL
notes in a general PUT — it scopes the change cleanly to the notes field and produces a clearer audit trail.
Sub-resource endpoints
Raise treats addresses and contact methods as first-class sub-resources of a donor. Each has its own ID, its own dedicated endpoints, and operates independently of the parent donor PUT.Addresses
Setting an address as primary automatically unmarks any previously-primary address — exactly one address can be primary at a time.
Contact methods
Contact methods cover both emails and phone numbers under a unified resource. Each method has a type indicating which:
There are also typed convenience endpoints (
POST /api/Donor/{id}/email, POST /api/Donor/{id}/phone, etc.) that operate on the same underlying contact-method records but with explicit email-only or phone-only paths. Use whichever pattern is more natural for your integration.
Special operations
A few Donor operations don’t map to plain CRUD and have dedicated endpoints.Archive
cURL
isArchived: true on the donor record. The donor is hidden from most lists and reports but the record persists with all history intact. Use archive to clean up inactive donors without losing data.
Archiving is reversible by toggling isArchived back to false via a Donor update — though the spec doesn’t expose a dedicated unarchive endpoint.
Merge
cURL
Confirm the exact request body shape for
PUT /api/Donor/merge against the live API before relying on it in production. The endpoint description says “Merge two donors” but the OpenAPI spec doesn’t detail the merge behavior — particularly around what happens to the source donor’s Gifts, RecurringGifts, and sub-resources after merge.Transfer a gift to another donor
If a Gift was attributed to the wrong donor, transfer it without deleting and recreating:cURL
donorId is updated to the new donor and the Gift remains otherwise intact — same amount, date, designations, payment record.
PUT /api/Donor/transfer-recurring-gift performs the equivalent operation for a RecurringGift schedule.
Activities
Donor activities are log entries — interaction notes, status updates, follow-up records:
Use activities to track integration-managed interactions — when your integration sent the donor a thank-you email, when an automated follow-up sequence was triggered, etc. These show up in the donor’s history alongside manual entries from the customer’s staff.
Generate a personalized donation page
cURL
Donor data privacy
Two donor-data privacy concerns are worth flagging:GDPR right-to-erasure
TheisGDPRDeleted flag on a Donor record indicates the donor has been deleted under a GDPR right-to-erasure request. The record is retained as a tombstone (the id continues to exist so historical Gift references don’t break) but personal data is removed.
Partner integrations that store Donor data locally should respect this flag — when a donor sync detects isGDPRDeleted: true, the local record should be reduced to the tombstone state, with personal data deleted on the partner side.
Test mode separation
Donors created withisTestMode: true are flagged as test data. Production reports should filter to isTestMode: false. See Base URLs and Environments — Working against production with care.
Where to go next
Gifts
The Gift resource and the donation submission path that creates Donors as a side effect.
Create or Find a Donor
The workflow for ensuring a donor exists before submitting a donation.
Query Donors by Filters
Use the structured query pattern to find specific donor segments.
How Raise Data Flows to CRM+
The platform-level sync that keeps Raise Donors aligned with CRM+ Contacts.