Skip to main content
GET
https://api.givebutter.com
/
v1
/
campaigns
/
:id
curl "https://api.givebutter.com/v1/campaigns/camp_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "id": "camp_abc123",
  "title": "Annual Gala 2024",
  "description": "Join us for our annual fundraising gala to support local education programs.",
  "goal": 5000000,
  "total_raised": 1250000,
  "status": "active",
  "url": "https://givebutter.com/annual-gala-2024",
  "image_url": "https://cdn.givebutter.com/campaigns/abc123/cover.jpg",
  "video_url": "https://youtube.com/watch?v=example",
  "end_date": "2024-06-30T23:59:59Z",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-20T14:22:00Z",
  "statistics": {
    "transaction_count": 42,
    "supporter_count": 38,
    "average_donation": 32895,
    "completion_percentage": 25.0
  }
}
Returns detailed information about a specific campaign.

Path Parameters

id
string
required
The unique identifier of the campaign to retrieve

Response

id
string
Unique identifier for the campaign
title
string
Campaign title
description
string
Campaign description
goal
integer
Fundraising goal in cents
total_raised
integer
Total amount raised in cents
status
string
Campaign status: draft, active, paused, or completed
url
string
Public campaign URL
image_url
string
URL to campaign cover image
video_url
string | null
URL to campaign video (if any)
end_date
string | null
ISO 8601 timestamp of campaign end date (if set)
created_at
string
ISO 8601 timestamp of when the campaign was created
updated_at
string
ISO 8601 timestamp of when the campaign was last updated
statistics
object
Campaign statistics
curl "https://api.givebutter.com/v1/campaigns/camp_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "id": "camp_abc123",
  "title": "Annual Gala 2024",
  "description": "Join us for our annual fundraising gala to support local education programs.",
  "goal": 5000000,
  "total_raised": 1250000,
  "status": "active",
  "url": "https://givebutter.com/annual-gala-2024",
  "image_url": "https://cdn.givebutter.com/campaigns/abc123/cover.jpg",
  "video_url": "https://youtube.com/watch?v=example",
  "end_date": "2024-06-30T23:59:59Z",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-20T14:22:00Z",
  "statistics": {
    "transaction_count": 42,
    "supporter_count": 38,
    "average_donation": 32895,
    "completion_percentage": 25.0
  }
}

Use Cases

Fetch campaign details to show real-time progress on your own website:
async function displayCampaignProgress(campaignId) {
  const response = await fetch(`https://api.givebutter.com/v1/campaigns/${campaignId}`, {
    headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
  });

  const campaign = await response.json();

  document.getElementById('campaign-title').textContent = campaign.title;
  document.getElementById('progress').textContent =
    `${campaign.statistics.completion_percentage}% of $${campaign.goal / 100} goal`;
}
Monitor whether a campaign is active before displaying it:
def is_campaign_active(campaign_id):
    response = requests.get(
        f'https://api.givebutter.com/v1/campaigns/{campaign_id}',
        headers={'Authorization': 'Bearer YOUR_API_KEY'}
    )

    campaign = response.json()
    return campaign['status'] == 'active'
Keep your internal database synchronized with Givebutter:
async function syncCampaign(campaignId) {
  const response = await fetch(`https://api.givebutter.com/v1/campaigns/${campaignId}`, {
    headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
  });

  const campaign = await response.json();

  // Update your database
  await db.campaigns.update({
    givebutter_id: campaign.id,
    title: campaign.title,
    total_raised: campaign.total_raised,
    completion: campaign.statistics.completion_percentage,
    updated_at: new Date()
  });
}

Next Steps