List Campaigns
curl --request GET \
--url https://api.example.com/api/orgs/:idOrSlug/campaigns{
"data": [
{
"id": "<string>",
"orgId": "<string>",
"title": "<string>",
"slug": "<string>",
"description": {},
"type": "<string>",
"status": "<string>",
"goalAmountCents": {},
"raisedAmountCents": 123,
"donationCount": 123,
"coverImageUrl": {},
"videoUrl": {},
"color": {},
"showDonorRoll": true,
"showGoal": true,
"startDate": {},
"endDate": {},
"suggestedAmounts": [
{}
],
"allowCustomAmount": true,
"allowRecurring": true,
"matchingEnabled": true,
"matchingOrgName": {},
"matchingMaxCents": {},
"matchingRatioPct": 123,
"minAmountCents": {},
"ticketPriceCents": {},
"ticketCapacity": {},
"ticketsSold": 123,
"parentCampaignId": {},
"scheduledPublishAt": {},
"createdAt": "<string>",
"updatedAt": "<string>"
}
]
}Campaigns
List Campaigns
List all campaigns for an organization.
GET
/
api
/
orgs
/
:idOrSlug
/
campaigns
List Campaigns
curl --request GET \
--url https://api.example.com/api/orgs/:idOrSlug/campaigns{
"data": [
{
"id": "<string>",
"orgId": "<string>",
"title": "<string>",
"slug": "<string>",
"description": {},
"type": "<string>",
"status": "<string>",
"goalAmountCents": {},
"raisedAmountCents": 123,
"donationCount": 123,
"coverImageUrl": {},
"videoUrl": {},
"color": {},
"showDonorRoll": true,
"showGoal": true,
"startDate": {},
"endDate": {},
"suggestedAmounts": [
{}
],
"allowCustomAmount": true,
"allowRecurring": true,
"matchingEnabled": true,
"matchingOrgName": {},
"matchingMaxCents": {},
"matchingRatioPct": 123,
"minAmountCents": {},
"ticketPriceCents": {},
"ticketCapacity": {},
"ticketsSold": 123,
"parentCampaignId": {},
"scheduledPublishAt": {},
"createdAt": "<string>",
"updatedAt": "<string>"
}
]
}List Campaigns
Returns all campaigns belonging to an organization. Requires authentication and org membership.Path Parameters
The organization’s internal ID or URL slug (e.g.,
"habitat-for-humanity").Authentication
Requires a valid Clerk session JWT in the
Authorization: Bearer header. The authenticated user must be a member of the specified organization.Response
Array of campaign objects belonging to the organization, ordered by creation date descending (newest first).
Show Campaign object fields
Show Campaign object fields
Unique campaign ID.
ID of the owning organization.
Campaign title.
URL-friendly slug. Unique within the org. Used in the hosted donation URL:
https://givelink.ai/donate/{slug}.Campaign description (HTML stripped on write).
Campaign type:
"DONATION", "PEER_TO_PEER", "EVENT", or "MEMBERSHIP".Campaign status:
"DRAFT", "ACTIVE", "PAUSED", or "ENDED".Fundraising goal in cents, if set.
Total amount raised in cents from succeeded donations. Maintained as a running aggregate.
Total number of succeeded donations.
URL of the campaign cover image.
URL of an embedded video.
Campaign brand color as a hex string (e.g.,
"#C4501E").Whether to show the public donor roll on the campaign page.
Whether to display the goal thermometer.
ISO 8601 campaign start date/time.
ISO 8601 campaign end date/time.
Array of pre-set donation amounts in cents (e.g.,
[2500, 5000, 10000, 25000]).Whether donors can enter a custom amount.
Whether recurring giving options are shown.
Whether donation matching is active.
Name of the matching organization, if matching is enabled.
Maximum matching amount in cents.
Matching ratio as a percentage (e.g.,
100 = 1:1 match, 200 = 2:1 match).Minimum donation amount in cents, if set.
For event campaigns: fixed ticket price in cents.
For event campaigns: maximum number of tickets available.
For event campaigns: number of tickets sold.
For peer-to-peer fundraiser pages: the ID of the parent campaign.
ISO 8601 datetime when the campaign is scheduled to automatically go live.
ISO 8601 creation timestamp.
ISO 8601 last-updated timestamp.
Example
curl https://givelink-api-production.up.railway.app/api/orgs/habitat-for-humanity/campaigns \
-H "Authorization: Bearer <clerk-session-jwt>"
{
"data": [
{
"id": "clx9876543210",
"orgId": "clxabc123456",
"title": "Spring 2026 Annual Fund",
"slug": "spring-2026-annual-fund",
"description": "Help us reach our goal before June 30.",
"type": "DONATION",
"status": "ACTIVE",
"goalAmountCents": 5000000,
"raisedAmountCents": 1245000,
"donationCount": 87,
"coverImageUrl": "https://cdn.givelink.ai/images/abc123.jpg",
"videoUrl": null,
"color": "#C4501E",
"showDonorRoll": true,
"showGoal": true,
"startDate": "2026-03-01T00:00:00.000Z",
"endDate": "2026-06-30T23:59:59.000Z",
"suggestedAmounts": [2500, 5000, 10000, 25000],
"allowCustomAmount": true,
"allowRecurring": true,
"matchingEnabled": false,
"matchingOrgName": null,
"matchingMaxCents": null,
"matchingRatioPct": 100,
"minAmountCents": null,
"ticketPriceCents": null,
"ticketCapacity": null,
"ticketsSold": 0,
"parentCampaignId": null,
"scheduledPublishAt": null,
"createdAt": "2026-02-15T10:30:00.000Z",
"updatedAt": "2026-03-01T00:00:01.000Z"
}
]
}
Error Responses
| Status | Error | Description |
|---|---|---|
| 401 | Unauthorized | Missing or invalid Authorization header. |
| 403 | Forbidden | Authenticated user is not a member of this organization. |
| 404 | Organization not found | No org exists with the given ID or slug. |
⌘I