List donation campaigns
GET /donation-campaigns
Requires the donation_campaigns: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 |
status | query | draft, published, archived | No | Campaign status | ||
slug | query | string | No | min length 1, max length 200 | Exact campaign slug | |
currency | query | string | No | Three-letter currency code, case-insensitive | ||
allowRecurring | query | boolean | No | Whether monthly giving is enabled | ||
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 | ||
search | query | string | No | max length 200 | Case-insensitive literal search over title, slug |
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/donation-campaigns" \
-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",
"title": "Example",
"slug": "example",
"description": "",
"imageUrl": "",
"logoUrl": "",
"status": "draft",
"currency": "usd",
"suggestedAmounts": [
25
],
"defaultAmount": 2500,
"allowCustomAmount": true,
"minimumAmount": 100,
"maximumCustomAmount": 25,
"allowRecurring": true,
"promoteMonthlyGiving": false,
"defaultFrequency": "one_off",
"feeContributionEnabled": false,
"feeContributionPercent": 3,
"goalAmount": 25,
"acknowledgementText": "No goods or services were provided in exchange for this contribution",
"confirmationText": "Thank you for supporting our work",
"totalRaised": 0,
"donationCount": 0
}
],
"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
|