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.
API Key (Recommended)
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
startandmaxquery parameters to paginate:?start=20&max=20for the second page - All responses are account-scoped — results are automatically filtered to your account’s data
Further Reference
- Javadocs — complete field reference for every entity
- API Keys and REST API — creating API keys, webhook setup
- Scripting Guide — using the API from within DonorPoint scripts