REST API Reference

The DonorPoint REST API provides programmatic access to all record types in the platform. Every entity in DonorPoint has corresponding API endpoints for reading and writing data.

For a complete field-level reference for each entity, see the Javadocs.

Base URL

https://{your-instance}.gobigriver.com/api

All API responses are JSON.


Authentication

The API supports two authentication methods.

Include your API key in the request header:

BRAPITOKEN: {your-api-key}

API keys are created and managed in the admin application under Configuration → API Keys. Each key is scoped to an account and carries the permissions of the account it belongs to.

Username and Password

Exchange credentials for a session token:

POST /userauthentication/auth
Content-Type: application/json

{ "username": "your-username", "password": "your-password" }

On success, the server sets a session cookie that authenticates subsequent requests. Use this method for interactive integrations; use API key authentication for server-to-server calls.


Standard Endpoints

Every entity type follows the same URL pattern. The entity name used in the URL is the system name — see System Names for the mapping from display names to system names.

Get a Single Record

GET /api/{entityName}Home/{id}

Returns a single record by its numeric ID.

Example — get contact with ID 12345:

GET /api/contactHome/12345
BRAPITOKEN: {your-api-key}

Get a List of Records

GET /api/{entityName}Home

Returns a list of records for your account. Results are paginated and account-scoped — you only receive records belonging to your account.

Example — list all contacts:

GET /api/contactHome
BRAPITOKEN: {your-api-key}

Create a Record

POST /api/{entityName}Home
Content-Type: application/json

Creates a new record. The request body is a JSON object with the fields to set.

Update a Record

PUT /api/{entityName}Home/{id}
Content-Type: application/json

Updates an existing record. The request body is a JSON object with the fields to update.


Common Entity Endpoints

Contacts

Method Path Description
GET /contactHome/{id} Get a contact by ID
GET /contactHome List contacts in your account
POST /contactHome Create a contact
PUT /contactHome/{id} Update a contact
GET /contactHome/{id}/purchaseOrders/ Get all transactions for a contact
GET /contactHome/{id}/volunteerInstances/ Get all volunteer records for a contact
GET /contactHome/{id}/recurringDonationInstances/ Get all recurring donations for a contact
GET /contactHome/{id}/membershipInstances/ Get all memberships for a contact
GET /contactHome/{id}/emails/ Get all emails sent to a contact

Organizations

Method Path Description
GET /organizationHome/{id} Get an organization by ID
GET /organizationHome List organizations
POST /organizationHome Create an organization
PUT /organizationHome/{id} Update an organization

Transactions

Method Path Description
GET /purchaseOrderHome/{id} Get a transaction by ID
GET /purchaseOrderHome List transactions
POST /purchaseOrderHome Create a transaction record
PUT /purchaseOrderHome/{id} Update a transaction

Recurring Donations

Method Path Description
GET /recurringDonationInstanceHome/{id} Get a recurring donation by ID
GET /recurringDonationInstanceHome List recurring donations
PUT /recurringDonationInstanceHome/{id} Update a recurring donation

Forms (Campaigns)

Method Path Description
GET /campaignHome/{id} Get a form by ID
GET /campaignHome List forms

Funds

Method Path Description
GET /fundHome/{id} Get a fund by ID
GET /fundHome List funds
POST /fundHome Create a fund
PUT /fundHome/{id} Update a fund

Volunteer Records

Method Path Description
GET /volunteerInstanceHome/{id} Get a volunteer record by ID
GET /volunteerInstanceHome List volunteer records
POST /volunteerInstanceHome Create a volunteer record
PUT /volunteerInstanceHome/{id} Update a volunteer record

Filtering Results

Query parameters can be used to filter list results. Filters use field names from the entity’s data model (as shown in the Javadocs).

Example — filter contacts by last name:

GET /api/contactHome?lastName=Smith

Example — filter transactions by status:

GET /api/purchaseOrderHome?status=ACTIVE

Multiple filter parameters are combined with AND logic.


Response Format

All responses are JSON. A single record is returned as a JSON object; a list is returned as a JSON array.

Example contact response:

{
  "id": 12345,
  "firstName": "Jane",
  "lastName": "Smith",
  "email": "jane@example.com",
  "phoneNumber": "216-555-1234",
  "city": "Cleveland",
  "state": "OH"
}

Custom field values are included in responses where the entity supports them, as a customPropertyValues map keyed by field name.


Webhooks

DonorPoint supports inbound webhooks via Script Modules. Any Script Module creates an implicit HTTP endpoint that accepts POST requests. The posted body is available in the script as requestBody.

Authentication for webhook endpoints uses the same BRAPITOKEN header as the standard API.

See API Keys and REST API for setup instructions, and Scripting Guide for how to process webhook payloads in script.


Rate Limits and Pagination

  • Results are returned in pages of up to 20 records by default
  • Use start and max query parameters to paginate: ?start=20&max=20 for the second page
  • All responses are account-scoped — results are automatically filtered to your account’s data

Further Reference