List donations
GET /donations
Requires the donations:read permission. Returns records belonging to the authenticated organisation, including unpublished or inactive records unless filtered.
Authorization
X-API-Key required
Parameters
| Name | Location | Type | Required | Default | Limits | Description |
|---|---|---|---|---|---|---|
page | query | integer | No | 1 | min 1, max 1000000 | Page number |
limit | query | integer | No | 10 | min 1, max 100 | Results per page |
campaignId | query | string | No | RemyPass donation campaign _id | ||
memberId | query | string | No | RemyPass member _id | ||
subscriptionId | query | string | No | RemyPass donation subscription _id | ||
status | query | pending, paid, failed, refund_pending, partially_refunded, refunded, disputed, dispute_lost | No | Donation payment status | ||
frequency | query | one_off, monthly | No | Donation frequency | ||
email | query | string (email) | No | Exact donor email, case-insensitive | ||
currency | query | string | No | Three-letter currency code, case-insensitive | ||
anonymous | query | boolean | No | Whether the donor requested anonymity on public displays | ||
updatedSince | query | string (date-time) | No | Inclusive ISO 8601 lower bound on updatedAt | ||
createdAfter | query | string (date-time) | No | Inclusive ISO 8601 lower bound on createdAt | ||
createdBefore | query | string (date-time) | No | Inclusive ISO 8601 upper bound on createdAt |
Data and reconciliation
Amounts use minor currency units (for example, GBP 25.50 is returned as 2550). Currency codes are lowercase. Relationship fields contain RemyPass record IDs; use the matching get endpoint to fetch related records. Optional relationships and dates may be absent or null. Checkout tokens, internal metadata, payment-provider credentials and worker leases are excluded.
List responses sort by updatedAt ascending, then _id ascending. Keep the same filters while paging. updatedSince is inclusive and requires a timezone. See incremental sync for overlap, deduplication and deletion handling.
Request Examples
curl -X GET "https://api.remypass.com/api/v1/public/donations" \
-H "Accept: application/json" \
-H "X-API-Key: YOUR_API_KEY"Responses
| Status | Description |
|---|---|
200 | Success |
400 | Bad request. The top-level message explains what is invalid and, where applicable, the errors array contains structured field details. |
401 | Missing or invalid API key. |
403 | The caller is not allowed to access this resource. |
429 | Rate limit exceeded. |
500 | Server error. |
200 Response Example
{
"success": true,
"message": "Success",
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"createdAt": "2026-10-06T12:00:00.000Z",
"updatedAt": "2026-10-06T12:00:00.000Z",
"campaign": "507f1f77bcf86cd799439011",
"member": "507f1f77bcf86cd799439011",
"subscription": "507f1f77bcf86cd799439011",
"donor": {
"name": "Example",
"email": "person@example.com"
},
"frequency": "one_off",
"baseAmount": 25,
"feeContributionAmount": 0,
"amount": 25,
"currency": "gbp",
"status": "pending",
"anonymous": false,
"refundedAmount": 0,
"disputeStatus": "open",
"disputedAmount": 0,
"receiptUrl": "",
"paidAt": "2026-10-06T12:00:00.000Z",
"refundedAt": "2026-10-06T12:00:00.000Z"
}
],
"pagination": {
"currentPage": 1,
"totalPages": 5,
"totalItems": 47,
"itemsPerPage": 10,
"hasNextPage": true,
"hasPrevPage": false
}
}
Response Fields
| Field | Type | Description | Attributes |
|---|---|---|---|
success | boolean | ||
message | string | ||
data | array of object | Show child attributes
| |
pagination | object | Show child attributes
|