GiveLinkDocs
API ReferenceCampaigns

List Campaigns

List all campaigns for an organization.

GET /api/orgs/:idOrSlug/campaigns

Returns all campaigns belonging to an organization. Requires authentication and org membership.

Path Parameters

ParameterTypeRequiredDescription
idOrSlugstringYesThe 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

Returns an array of campaign objects belonging to the organization, ordered by creation date descending (newest first).

Campaign Object Fields

FieldTypeDescription
idstringUnique campaign ID
orgIdstringID of the owning organization
titlestringCampaign title
slugstringURL-friendly slug, unique within the org
descriptionstring or nullCampaign description
typestring"DONATION", "PEER_TO_PEER", "EVENT", or "MEMBERSHIP"
statusstring"DRAFT", "ACTIVE", "PAUSED", or "ENDED"
goalAmountCentsinteger or nullFundraising goal in cents
raisedAmountCentsintegerTotal amount raised in cents
donationCountintegerTotal number of succeeded donations
coverImageUrlstring or nullURL of the campaign cover image
videoUrlstring or nullURL of an embedded video
colorstring or nullCampaign brand color as hex (e.g., "#C4501E")
showDonorRollbooleanWhether to show the public donor roll
showGoalbooleanWhether to display the goal thermometer
startDatestring or nullISO 8601 campaign start date/time
endDatestring or nullISO 8601 campaign end date/time
suggestedAmountsarrayPre-set donation amounts in cents
allowCustomAmountbooleanWhether donors can enter a custom amount
allowRecurringbooleanWhether recurring giving options are shown
matchingEnabledbooleanWhether donation matching is active
matchingOrgNamestring or nullName of the matching organization
matchingMaxCentsinteger or nullMaximum matching amount in cents
matchingRatioPctintegerMatching ratio as percentage (e.g., 100 = 1:1)
minAmountCentsinteger or nullMinimum donation amount in cents
ticketPriceCentsinteger or nullFor events: fixed ticket price in cents
ticketCapacityinteger or nullFor events: max tickets available
ticketsSoldintegerFor events: number of tickets sold
parentCampaignIdstring or nullFor P2P: parent campaign ID
scheduledPublishAtstring or nullISO 8601 scheduled publish datetime
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 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,
      "suggestedAmounts": [2500, 5000, 10000, 25000],
      "allowCustomAmount": true,
      "allowRecurring": true,
      "createdAt": "2026-02-15T10:30:00.000Z",
      "updatedAt": "2026-03-01T00:00:01.000Z"
    }
  ]
}

Error Responses

StatusErrorDescription
401UnauthorizedMissing or invalid Authorization header
403ForbiddenAuthenticated user is not a member of this organization
404Organization not foundNo org exists with the given ID or slug
How is this guide?

On this page