# Authentication
Source: https://docs.givebutter.com/api-reference/authentication
Securely authenticate API requests using Bearer token authentication with API keys.
The Givebutter API uses **Bearer token authentication** to secure all API requests. All requests must be made over HTTPS.
## Quick Start
Include your API key in the `Authorization` header of every request:
```bash cURL theme={null}
curl https://api.givebutter.com/v1/campaigns \
-H "Authorization: Bearer YOUR_API_KEY"
```
```javascript Node.js / JavaScript theme={null}
const response = await fetch('https://api.givebutter.com/v1/campaigns', {
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
```
```python Python theme={null}
import requests
headers = {'Authorization': 'Bearer YOUR_API_KEY'}
response = requests.get('https://api.givebutter.com/v1/campaigns', headers=headers)
```
```php PHP theme={null}
$ch = curl_init('https://api.givebutter.com/v1/campaigns');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY'
]);
$response = curl_exec($ch);
```
```ruby Ruby theme={null}
require 'net/http'
uri = URI('https://api.givebutter.com/v1/campaigns')
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
```
```go Go theme={null}
client := &http.Client{}
req, _ := http.NewRequest("GET", "https://api.givebutter.com/v1/campaigns", nil)
req.Header.Add("Authorization", "Bearer YOUR_API_KEY")
resp, err := client.Do(req)
```
```java Java theme={null}
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.givebutter.com/v1/campaigns"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
```
## Getting Your API Key
1. Go to **Settings** → **Integrations** → **API Keys** in your [Givebutter Dashboard](https://givebutter.com/dashboard)
2. Click **Create New API Key** and give it a name
3. Copy your API key immediately and store it securely
Your API key is shown only once. Never share it or commit it to version control.
## Authentication Errors
### 401 Unauthorized
Your API key is missing, invalid, or revoked.
```json theme={null}
{
"message": "Unauthenticated."
}
```
**Common causes:**
* API key is missing from the request
* API key is incorrect or has typos
* API key has been revoked
* Using `Authorization: YOUR_API_KEY` instead of `Authorization: Bearer YOUR_API_KEY`
### 403 Forbidden
Your API key is valid but lacks permission for this resource.
```json theme={null}
{
"message": "This action is unauthorized."
}
```
**Common causes:**
* API key has restricted permissions
* Trying to access another organization's data
* Resource has been archived or deleted
# Create a discount code
Source: https://docs.givebutter.com/api-reference/campaign-discount-codes/create-a-discount-code
https://givebutter.com/docs/api.json post /v1/campaigns/{campaign}/discount-codes
# Delete a discount code
Source: https://docs.givebutter.com/api-reference/campaign-discount-codes/delete-a-discount-code
https://givebutter.com/docs/api.json delete /v1/campaigns/{campaign}/discount-codes/{discountCode}
# Get a discount code
Source: https://docs.givebutter.com/api-reference/campaign-discount-codes/get-a-discount-code
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/discount-codes/{discountCode}
# List all discount codes
Source: https://docs.givebutter.com/api-reference/campaign-discount-codes/list-all-discount-codes
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/discount-codes
# Update a discount code
Source: https://docs.givebutter.com/api-reference/campaign-discount-codes/update-a-discount-code
https://givebutter.com/docs/api.json put /v1/campaigns/{campaign}/discount-codes/{discountCode}
# Delete a campaign member
Source: https://docs.givebutter.com/api-reference/campaign-members/delete-a-campaign-member
https://givebutter.com/docs/api.json delete /v1/campaigns/{campaign}/members/{member}
# Get a campaign member
Source: https://docs.givebutter.com/api-reference/campaign-members/get-a-campaign-member
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/members/{member}
# List all campaign members
Source: https://docs.givebutter.com/api-reference/campaign-members/list-all-campaign-members
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/members
# Delete a campaign team
Source: https://docs.givebutter.com/api-reference/campaign-teams/delete-a-campaign-team
https://givebutter.com/docs/api.json delete /v1/campaigns/{campaign}/teams/{team}
# Get a campaign team
Source: https://docs.givebutter.com/api-reference/campaign-teams/get-a-campaign-team
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/teams/{team}
# List all campaign teams
Source: https://docs.givebutter.com/api-reference/campaign-teams/list-all-campaign-teams
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/teams
# Create a campaign ticket
Source: https://docs.givebutter.com/api-reference/campaign-tickets/create-a-campaign-ticket
https://givebutter.com/docs/api.json post /v1/campaigns/{campaign}/items/tickets
# Get a campaign ticket
Source: https://docs.givebutter.com/api-reference/campaign-tickets/get-a-campaign-ticket
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/items/tickets/{ticketId}
# List all campaign tickets
Source: https://docs.givebutter.com/api-reference/campaign-tickets/list-all-campaign-tickets
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}/items/tickets
# Create a campaign
Source: https://docs.givebutter.com/api-reference/campaigns/create-a-campaign
https://givebutter.com/docs/api.json post /v1/campaigns
# Delete a campaign
Source: https://docs.givebutter.com/api-reference/campaigns/delete-a-campaign
https://givebutter.com/docs/api.json delete /v1/campaigns/{campaign}
# Get a campaign
Source: https://docs.givebutter.com/api-reference/campaigns/get-a-campaign
https://givebutter.com/docs/api.json get /v1/campaigns/{campaign}
# List all campaigns
Source: https://docs.givebutter.com/api-reference/campaigns/list-all-campaigns
https://givebutter.com/docs/api.json get /v1/campaigns
# Update a campaign
Source: https://docs.givebutter.com/api-reference/campaigns/update-a-campaign
https://givebutter.com/docs/api.json put /v1/campaigns/{campaign}
# Create a contact activity
Source: https://docs.givebutter.com/api-reference/contact-activities/create-a-contact-activity
https://givebutter.com/docs/api.json post /v1/contacts/{contact}/activities
# Delete a contact activity
Source: https://docs.givebutter.com/api-reference/contact-activities/delete-a-contact-activity
https://givebutter.com/docs/api.json delete /v1/contacts/{contact}/activities/{activity}
# Get a contact activity
Source: https://docs.givebutter.com/api-reference/contact-activities/get-a-contact-activity
https://givebutter.com/docs/api.json get /v1/contacts/{contact}/activities/{activity}
# List all contact activities
Source: https://docs.givebutter.com/api-reference/contact-activities/list-all-contact-activities
https://givebutter.com/docs/api.json get /v1/contacts/{contact}/activities
# Update a contact activity
Source: https://docs.givebutter.com/api-reference/contact-activities/update-a-contact-activity
https://givebutter.com/docs/api.json put /v1/contacts/{contact}/activities/{activity}
# Add tags to a contact
Source: https://docs.givebutter.com/api-reference/contact-tags/add-tags-to-a-contact
https://givebutter.com/docs/api.json post /v1/contacts/{contact}/tags/add
# Remove tags from a contact
Source: https://docs.givebutter.com/api-reference/contact-tags/remove-tags-from-a-contact
https://givebutter.com/docs/api.json post /v1/contacts/{contact}/tags/remove
# Sync tags for a contact
Source: https://docs.givebutter.com/api-reference/contact-tags/sync-tags-for-a-contact
https://givebutter.com/docs/api.json post /v1/contacts/{contact}/tags/sync
# Create a contact
Source: https://docs.givebutter.com/api-reference/contacts/create-a-contact
https://givebutter.com/docs/api.json post /v1/contacts
# Delete a contact
Source: https://docs.givebutter.com/api-reference/contacts/delete-a-contact
https://givebutter.com/docs/api.json delete /v1/contacts/{contact}
# Get a contact
Source: https://docs.givebutter.com/api-reference/contacts/get-a-contact
https://givebutter.com/docs/api.json get /v1/contacts/{contact}
# List all contacts
Source: https://docs.givebutter.com/api-reference/contacts/list-all-contacts
https://givebutter.com/docs/api.json get /v1/contacts
# Restore a contact
Source: https://docs.givebutter.com/api-reference/contacts/restore-a-contact
https://givebutter.com/docs/api.json patch /v1/contacts/{contact}/restore
# Update a contact
Source: https://docs.givebutter.com/api-reference/contacts/update-a-contact
https://givebutter.com/docs/api.json put /v1/contacts/{contact}
# Errors
Source: https://docs.givebutter.com/api-reference/errors
The Givebutter API uses standard HTTP status codes to indicate the success or failure of requests.
## HTTP Status Codes
### Client Error Codes (4xx)
| Code | Name | Description | Common Causes |
| ---- | -------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| 400 | Bad Request | Malformed request syntax or invalid request parameters. | Invalid JSON, missing required parameters, malformed data |
| 401 | Unauthorized | Authentication required. API key missing, invalid, or revoked. | Missing Authorization header, invalid API key, revoked key |
| 403 | Forbidden | Authentication succeeded, but insufficient permissions for this resource. | API key lacks permissions, accessing another org's resources |
| 404 | Not Found | Requested resource does not exist or was not found. | Invalid resource ID, resource deleted, typo in URL |
| 405 | Method Not Allowed | HTTP method not supported for this endpoint (e.g., POST on a GET-only route). | Using wrong HTTP method (POST instead of GET) |
| 409 | Conflict | Request conflicts with current resource state (e.g., duplicate record). | Duplicate resource, race condition, resource locked |
| 422 | Unprocessable Entity | Request syntax valid, but semantic errors in data (validation failures). | Missing required fields, invalid data types, values out of range |
| 429 | Too Many Requests | Rate limit exceeded. Wait before making additional requests. | Too many requests in short period, see [Rate Limits](/api-reference/rate-limits) |
### Server Error Codes (5xx)
| Code | Name | Description | What To Do |
| ---- | --------------------- | ------------------------------------------------------------------ | ------------------------------------ |
| 500 | Internal Server Error | Unexpected error on the server. Contact support if issue persists. | Retry with exponential backoff |
| 502 | Bad Gateway | Invalid response from upstream server. Usually temporary. | Retry after brief delay |
| 503 | Service Unavailable | Server temporarily unavailable (maintenance or overload). | Retry after delay, check status page |
| 504 | Gateway Timeout | Request timed out waiting for upstream server. | Retry with exponential backoff |
## Validation Errors
When a request fails validation (422 status), the response includes an `errors` object with field-specific messages:
```json theme={null}
{
"message": "The given data was invalid.",
"errors": {
"email": ["The email field is required.", "The email must be a valid email address."],
"amount": ["The amount must be greater than 0."]
}
}
```
# Create a fund
Source: https://docs.givebutter.com/api-reference/funds/create-a-fund
https://givebutter.com/docs/api.json post /v1/funds
# Delete a fund
Source: https://docs.givebutter.com/api-reference/funds/delete-a-fund
https://givebutter.com/docs/api.json delete /v1/funds/{fund}
# Get a fund
Source: https://docs.givebutter.com/api-reference/funds/get-a-fund
https://givebutter.com/docs/api.json get /v1/funds/{fund}
# List all funds
Source: https://docs.givebutter.com/api-reference/funds/list-all-funds
https://givebutter.com/docs/api.json get /v1/funds
# Update a fund
Source: https://docs.givebutter.com/api-reference/funds/update-a-fund
https://givebutter.com/docs/api.json put /v1/funds/{fund}
# Add a contact to a household
Source: https://docs.givebutter.com/api-reference/household-contacts/add-a-contact-to-a-household
https://givebutter.com/docs/api.json post /v1/households/{household}/contacts
# Get a contact associated with a household
Source: https://docs.givebutter.com/api-reference/household-contacts/get-a-contact-associated-with-a-household
https://givebutter.com/docs/api.json get /v1/households/{household}/contacts/{contact}
# List all contacts associated with a household
Source: https://docs.givebutter.com/api-reference/household-contacts/list-all-contacts-associated-with-a-household
https://givebutter.com/docs/api.json get /v1/households/{household}/contacts
# Remove a contact from a household
Source: https://docs.givebutter.com/api-reference/household-contacts/remove-a-contact-from-a-household
https://givebutter.com/docs/api.json delete /v1/households/{household}/contacts/{contact}
# Create a household
Source: https://docs.givebutter.com/api-reference/households/create-a-household
https://givebutter.com/docs/api.json post /v1/households
# Delete a household
Source: https://docs.givebutter.com/api-reference/households/delete-a-household
https://givebutter.com/docs/api.json delete /v1/households/{household}
# Get a household
Source: https://docs.givebutter.com/api-reference/households/get-a-household
https://givebutter.com/docs/api.json get /v1/households/{household}
# List all households
Source: https://docs.givebutter.com/api-reference/households/list-all-households
https://givebutter.com/docs/api.json get /v1/households
# Update a household
Source: https://docs.givebutter.com/api-reference/households/update-a-household
https://givebutter.com/docs/api.json put /v1/households/{household}
# Get a message
Source: https://docs.givebutter.com/api-reference/messages/get-a-message
https://givebutter.com/docs/api.json get /v1/messages/{message}
# List all messages
Source: https://docs.givebutter.com/api-reference/messages/list-all-messages
https://givebutter.com/docs/api.json get /v1/messages
# Pagination
Source: https://docs.givebutter.com/api-reference/pagination
Efficiently work with large datasets using cursor-based and offset pagination in the Givebutter API.
The Givebutter API uses pagination to break large result sets into manageable pages. This improves performance and allows you to retrieve data incrementally rather than loading thousands of records at once.
## Pagination Response Format
All paginated endpoints return responses in this structure:
```json Response Structure theme={null}
{
"data": [
// Array of resources (campaigns, transactions, contacts, etc.)
],
"links": {
"first": "https://api.givebutter.com/v1/campaigns?page=1",
"last": "https://api.givebutter.com/v1/campaigns?page=5",
"prev": "https://api.givebutter.com/v1/campaigns?page=1",
"next": "https://api.givebutter.com/v1/campaigns?page=3"
},
"meta": {
"current_page": 2,
"from": 21,
"last_page": 5,
"path": "https://api.givebutter.com/v1/campaigns",
"per_page": 20,
"to": 40,
"total": 95
}
}
```
```json First Page Example theme={null}
{
"data": [
{
"id": "camp_abc123",
"title": "Annual Gala"
// ... campaign data
},
{
"id": "camp_def456",
"title": "Spring Fundraiser"
// ... campaign data
}
// ... 18 more campaigns
],
"links": {
"first": "https://api.givebutter.com/v1/campaigns?page=1",
"last": "https://api.givebutter.com/v1/campaigns?page=5",
"prev": null,
"next": "https://api.givebutter.com/v1/campaigns?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"path": "https://api.givebutter.com/v1/campaigns",
"per_page": 20,
"to": 20,
"total": 95
}
}
```
```json Last Page Example theme={null}
{
"data": [
{
"id": "camp_xyz789",
"title": "Year End Campaign"
// ... campaign data
}
// ... only 15 campaigns on last page
],
"links": {
"first": "https://api.givebutter.com/v1/campaigns?page=1",
"last": "https://api.givebutter.com/v1/campaigns?page=5",
"prev": "https://api.givebutter.com/v1/campaigns?page=4",
"next": null
},
"meta": {
"current_page": 5,
"from": 81,
"last_page": 5,
"path": "https://api.givebutter.com/v1/campaigns",
"per_page": 20,
"to": 95,
"total": 95
}
}
```
## Pagination Metadata
### Links Object
The `links` object provides ready-to-use URLs for navigating pages:
| Field | Description | Value When Not Available |
| ------- | --------------------------------------------------- | ------------------------ |
| `first` | URL to the first page of results | Never null |
| `last` | URL to the last page of results | Never null |
| `prev` | URL to the previous page (only if current page > 1) | `null` on first page |
| `next` | URL to the next page (only if more pages exist) | `null` on last page |
The `next` link is the easiest way to paginate. Keep following `next` until it becomes `null` to
fetch all results.
### Meta Object
The `meta` object provides detailed pagination state:
| Field | Description | Example |
| -------------- | ------------------------------------------------ | ----------------------------------------- |
| `current_page` | The current page number (1-indexed) | `2` |
| `from` | The index of the first item on this page | `21` |
| `to` | The index of the last item on this page | `40` |
| `last_page` | The total number of pages | `5` |
| `per_page` | Number of items per page | `20` |
| `total` | Total number of items across all pages | `95` |
| `path` | Base URL for the resource (without query params) | `https://api.givebutter.com/v1/campaigns` |
## Query Parameters
Control pagination behavior with these query parameters:
| Parameter | Description | Default | Max |
| ---------- | --------------------------------------- | ------- | ----- |
| `page` | The page number to retrieve (1-indexed) | `1` | - |
| `per_page` | Number of items per page | `20` | `100` |
```bash Request Specific Page theme={null}
curl "https://api.givebutter.com/v1/campaigns?page=3" \
-H "Authorization: Bearer YOUR_API_KEY"
```
```bash Custom Page Size theme={null}
curl "https://api.givebutter.com/v1/campaigns?per_page=50" \
-H "Authorization: Bearer YOUR_API_KEY"
```
```bash Page 2 with 50 Items theme={null}
curl "https://api.givebutter.com/v1/campaigns?page=2&per_page=50" \
-H "Authorization: Bearer YOUR_API_KEY"
```
The maximum `per_page` value is **100**. Requesting more than 100 items per page will return an
error.
# Get a payout
Source: https://docs.givebutter.com/api-reference/payouts/get-a-payout
https://givebutter.com/docs/api.json get /v1/payouts/{payout}
# List all payouts
Source: https://docs.givebutter.com/api-reference/payouts/list-all-payouts
https://givebutter.com/docs/api.json get /v1/payouts
# Get a pledge
Source: https://docs.givebutter.com/api-reference/pledges/get-a-pledge
https://givebutter.com/docs/api.json get /v1/pledges/{pledge}
# List all pledges
Source: https://docs.givebutter.com/api-reference/pledges/list-all-pledges
https://givebutter.com/docs/api.json get /v1/pledges
# Rate Limits
Source: https://docs.givebutter.com/api-reference/rate-limits
Understand API rate limits to ensure reliable access.
The Givebutter API is rate limited to **500 requests per minute**.
When you exceed this limit, you'll receive a `429 Too Many Requests` response with a `Retry-After` header indicating how many seconds to wait before retrying.
# Get a recurring plan
Source: https://docs.givebutter.com/api-reference/recurring-plans/get-a-recurring-plan
https://givebutter.com/docs/api.json get /v1/plans/{plan}
# List all recurring plans
Source: https://docs.givebutter.com/api-reference/recurring-plans/list-all-recurring-plans
https://givebutter.com/docs/api.json get /v1/plans
# Get ssov1account
Source: https://docs.givebutter.com/api-reference/sso-accounts/get-ssov1account
https://givebutter.com/docs/api.json get /sso/v1/account
# Get ssov1campaigns
Source: https://docs.givebutter.com/api-reference/sso-campaigns/get-ssov1campaigns
https://givebutter.com/docs/api.json get /sso/v1/campaigns/{campaign}
# Get a ticket
Source: https://docs.givebutter.com/api-reference/tickets/get-a-ticket
https://givebutter.com/docs/api.json get /v1/tickets/{ticket}
# List all tickets
Source: https://docs.givebutter.com/api-reference/tickets/list-all-tickets
https://givebutter.com/docs/api.json get /v1/tickets
# Create a transaction
Source: https://docs.givebutter.com/api-reference/transactions/create-a-transaction
https://givebutter.com/docs/api.json post /v1/transactions
# Get a transaction
Source: https://docs.givebutter.com/api-reference/transactions/get-a-transaction
https://givebutter.com/docs/api.json get /v1/transactions/{transaction}
# List all transactions
Source: https://docs.givebutter.com/api-reference/transactions/list-all-transactions
https://givebutter.com/docs/api.json get /v1/transactions
# Update a transaction
Source: https://docs.givebutter.com/api-reference/transactions/update-a-transaction
https://givebutter.com/docs/api.json put /v1/transactions/{transaction}
# Get a webhook activity
Source: https://docs.givebutter.com/api-reference/webhook-activities/get-a-webhook-activity
https://givebutter.com/docs/api.json get /v1/webhooks/{webhook}/activities/{activity}
# List all webhook activities
Source: https://docs.givebutter.com/api-reference/webhook-activities/list-all-webhook-activities
https://givebutter.com/docs/api.json get /v1/webhooks/{webhook}/activities
# Create a webhook
Source: https://docs.givebutter.com/api-reference/webhooks/create-a-webhook
https://givebutter.com/docs/api.json post /v1/webhooks
# Delete a webhook
Source: https://docs.givebutter.com/api-reference/webhooks/delete-a-webhook
https://givebutter.com/docs/api.json delete /v1/webhooks/{webhook}
# Get a webhook
Source: https://docs.givebutter.com/api-reference/webhooks/get-a-webhook
https://givebutter.com/docs/api.json get /v1/webhooks/{webhook}
# List all webhooks
Source: https://docs.givebutter.com/api-reference/webhooks/list-all-webhooks
https://givebutter.com/docs/api.json get /v1/webhooks
# Update a webhook
Source: https://docs.givebutter.com/api-reference/webhooks/update-a-webhook
https://givebutter.com/docs/api.json put /v1/webhooks/{webhook}
# Analytics & Attribution
Source: https://docs.givebutter.com/widgets/advanced/analytics
Track where your donations come from with automatic attribution data capture.
Givebutter Widgets automatically capture and store attribution data when visitors interact with your donation forms. This powerful feature helps you understand which marketing channels, campaigns, and content drive the most donations, allowing you to optimize your fundraising strategy.
## Automatic Tracking
The following parameters are automatically tracked when someone visits a page with a widget installed:
### UTM Parameters
UTM (Urchin Tracking Module) parameters are the standard way to track marketing campaign performance:
| Parameter | Description | Example |
| -------------- | -------------------------------------------------------------- | ---------------------------------- |
| `utm_source` | Identifies the source of your traffic | `facebook`, `google`, `newsletter` |
| `utm_medium` | Specifies the marketing medium | `social`, `email`, `cpc`, `banner` |
| `utm_campaign` | Names the specific campaign or promotional effort | `spring-fundraiser`, `year-end` |
| `utm_term` | Tracks specific keywords in paid search campaigns | `nonprofit-donation`, `charity` |
| `utm_content` | Distinguishes between different content or ads in one campaign | `blue-button`, `hero-cta` |
### Platform Click IDs
Platform-specific identifiers for advanced tracking and conversion measurement:
| Parameter | Platform | Description |
| --------- | ------------- | --------------------------------------------------------- |
| `gclid` | Google Ads | Google Click ID for conversion tracking |
| `wbraid` | Google Ads | Web to App tracking on iOS 14+ (privacy-safe) |
| `gbraid` | Google Ads | App to Web tracking on iOS 14+ (privacy-safe) |
| `gclsrc` | Google Ads | Identifies the Google Ads source (ads, other services) |
| `dclid` | Google (DCM) | DoubleClick Click ID for Display & Video 360 |
| `fbclid` | Meta/Facebook | Facebook Click ID for conversion tracking and attribution |
## Troubleshooting
**Attribution data not appearing?** Ensure the Widgets library is installed on the page where
visitors land with UTM parameters. The library must load before the user navigates away.
# URL Prefill Parameters
Source: https://docs.givebutter.com/widgets/advanced/url-prefill
Pre-fill donation amount and frequency using URL parameters.
Givebutter Widgets support URL parameters that automatically pre-fill the donation amount and frequency when donors visit your page. This works with both button widgets (popup forms) and inline form widgets.
## Supported Parameters
| Parameter | Description | Example |
| ----------- | ----------------------------------- | -------------------- |
| `amount` | Preset donation amount (in dollars) | `?amount=50` |
| `frequency` | Donation frequency | `?frequency=monthly` |
### Frequency Options
Supported values for `frequency`:
* `monthly` - Donate every month
* `quarterly` - Donate every 3 months
* `yearly` - Donate once per year
## Examples
### Preset Donation Amount
Direct donors to a specific giving level:
```plaintext theme={null}
https://yoursite.org/donate?amount=100
```
### Monthly Giving Campaign
Create links for recurring donation campaigns:
```plaintext theme={null}
https://yoursite.org/donate?amount=25&frequency=monthly
```
This pre-fills a \$25/month recurring donation.
# Interactive Examples
Source: https://docs.givebutter.com/widgets/examples
See Givebutter Widgets in action with interactive, customizable examples.
Explore live, interactive examples of Givebutter Widgets. These are real, functioning widgets that demonstrate how they'll look and behave on your website.
**Note:** These examples use a demo Givebutter account. When you implement widgets on your site,
you'll use your own Account ID and Campaign Codes.
## Button Widget
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
## Form Widget
```html theme={null}
```
Support Our Cause
Your donation makes a real difference in our community.
```html theme={null}
Support Our Cause
Your donation makes a real difference in our community.
```
```html theme={null}
```
## Goal Bar Widget
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
A classic thermometer-style visualization for your fundraising progress.
```html theme={null}
```
## Signup Form Widget
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
Join Our Community
Get exclusive updates and early access
```html theme={null}
Join Our Community
Get exclusive updates and early access
```
# Getting Started
Source: https://docs.givebutter.com/widgets/getting-started
Learn how to embed donation forms and buttons directly on your own website.
Givebutter Widgets allow you to seamlessly integrate donation forms, buttons, and other fundraising elements directly into your website. With just a few lines of code, you can start accepting donations without redirecting users away from your site.
## Prerequisites
Before you begin, you'll need:
* An active Givebutter account
* A campaign set up in your Givebutter Dashboard
* Access to edit your website's HTML
## Installing the Widgets Library
Installing Widgets is fast and easy. Simply add the following code snippet inside the `
` tag of your website and we'll take care of the rest.
```html HTML theme={null}
```
Replace `YOUR_ACCOUNT_ID` with your Account ID from your Givebutter Dashboard. We recommend
including the code snippet on every page of your site for consistent tracking and analytics.
### Finding Your Account ID
To find your Account ID:
1. Log in to your [Givebutter Dashboard](https://givebutter.com/dashboard)
2. Navigate to **Settings** > **Integrations**
3. Look for your **Account ID** in the Widgets section
4. Copy and paste it into the script tag above
## Embedding Widgets
Once you've installed the Widgets library, you can embed widgets anywhere on your website:
* **[Button Widget](/widgets/widget-types/button)** - A customizable button that opens a donation popup
* **[Form Widget](/widgets/widget-types/form)** - An inline donation form embedded on your page
* **[Goal Bar Widget](/widgets/widget-types/goal-bar)** - A progress bar showing campaign fundraising status
* **[Signup Form Widget](/widgets/widget-types/signup-form)** - A form to capture email subscribers
### Quick Setup (Dashboard)
1. Go to your campaign's **Sharing** → **Widgets** in the Givebutter Dashboard
2. Select the widget type and customize settings
3. Copy the generated code and paste it on your website
```html theme={null}
```
### Manual Setup
For more control, use the specific widget tags with your campaign code:
```html Button theme={null}
```
```html Form theme={null}
```
```html Goal Bar theme={null}
```
```html Signup Form theme={null}
```
## Finding Your Campaign Code
Your Campaign Code is a unique identifier for each campaign:
1. Go to your campaign in the Dashboard
2. Look at the top section near the title
3. The Campaign Code is the six-character text
4. Use this code in your widget tags
## Next Steps
Now that you've installed the Widgets library, explore the different widget types to find the best fit for your fundraising needs:
* **[Button Widget](/widgets/widget-types/button)** - Perfect for adding donate buttons anywhere on your site
* **[Form Widget](/widgets/widget-types/form)** - Embed a full donation form directly on your page
* **[Goal Bar Widget](/widgets/widget-types/goal-bar)** - Show campaign progress to motivate donors
* **[Signup Form Widget](/widgets/widget-types/signup-form)** - Grow your email list with a simple signup form
# GoDaddy
Source: https://docs.givebutter.com/widgets/website-builders/godaddy
Add Givebutter widgets to your GoDaddy Website Builder site.
For a step-by-step walkthrough with screenshots, see our [full GoDaddy
guide](https://help.givebutter.com/en/articles/8225055-how-to-use-givebutter-widgets-on-a-godaddy-website).
These instructions are for GoDaddy Website Builder. If you're using WordPress hosting from
GoDaddy, see our [WordPress guide](/widgets/website-builders/wordpress) instead.
## Prerequisites
* A GoDaddy Website Builder site (any plan)
* A Givebutter account with at least one published campaign
## Installation
GoDaddy requires both the library code and widget code to be added together in a single HTML section.
1. In Givebutter, go to **Settings** → **Developers** → **Widgets**
2. Click **GoDaddy** and copy the library code
3. Go to your campaign's **Sharing** → **Widgets** → **Embed**
4. Copy the widget embed code
1. Open your GoDaddy website editor
2. Navigate to the page where you want the widget
3. Click **Add Section** → **HTML**
4. Paste the **library code** first, then the **widget code** below it
5. Click **Done** then **Publish**
**Combined code example:**
```html theme={null}
```
GoDaddy doesn't support site-wide header/footer code. You must add widgets to each page
individually.
## Fixing Layout Issues
**White space around widget:**
* For static buttons: Set a smaller **Forced Height** in the HTML section settings
* For floating buttons: No adjustment needed
**Form gets cut off:**
* Remove any **Forced Height** constraint from the HTML section
## Customization
### Floating Button Position
```html theme={null}
```
Options: `bottom-right` (default), `bottom-left`
## Troubleshooting
* Both library code AND widget code must be in the same HTML section
* Library code must be first, widget code below
* Campaign must be published (not draft)
* Page must be published
GoDaddy requires manual installation per page. Only add the code to pages where you want the
widget.
# Squarespace
Source: https://docs.givebutter.com/widgets/website-builders/squarespace
Embed Givebutter widgets on your Squarespace website using Code Injection.
For a step-by-step walkthrough with screenshots, see our [full Squarespace
guide](https://help.givebutter.com/en/articles/7198277-how-to-use-givebutter-widgets-on-a-squarespace-website).
**Squarespace Core, Plus, or Advanced plan required.** Code Injection is not available on Basic
plans.
## Prerequisites
* A Squarespace Core, Plus, or Advanced plan
* A Givebutter account with at least one published campaign
## Installation
### Step 1: Add Library Code (Once)
1. In Givebutter, go to **Settings** → **Developers** → **Widgets**
2. Click **Squarespace** and copy the library code
3. In Squarespace, go to **Website** → **Pages** → **Website Tools** → **Code Injection**
4. Paste the library code in the **Header** section
5. Click **Save**
### Step 2: Add Widget to Page
1. In Givebutter, go to your campaign's **Sharing** → **Widgets** → **Embed**
2. Copy the widget embed code
3. In Squarespace, edit the page where you want the widget
4. Click **+** and add a **Code** block
5. Paste the widget code and save
```html theme={null}
```
## Customization
### Floating Button Position
```html theme={null}
```
Options: `bottom-right` (default), `bottom-left`
### Hide Widget on Specific Pages
Add this CSS to the page's **Advanced** → **Page Header Code Injection**:
```html theme={null}
```
## Troubleshooting
* Library code must be in Code Injection → Header
* Widget code must be in a Code block on the page
* Campaign must be published (not draft)
* Page changes must be saved
Try adding more space around the Code block or use a full-width section.
Use the CSS hiding method above, or only add the widget to specific pages instead of using Code
Injection.
# Weebly
Source: https://docs.givebutter.com/widgets/website-builders/weebly
Install Givebutter widgets on your Weebly website.
For a step-by-step walkthrough with screenshots, see our [full Weebly
guide](https://help.givebutter.com/en/articles/7203871-how-to-use-givebutter-widgets-on-a-weebly-website).
## Prerequisites
* A Weebly website (any plan)
* A Givebutter account with at least one published campaign
## Installation
### Step 1: Add Library Code (Once)
1. In Givebutter, go to **Settings** → **Developers** → **Widgets**
2. Click **Weebly** and copy the library code
3. In Weebly, go to **Settings** → **SEO**
4. Paste the library code in the **Header Code** field
5. Click **Save**
### Step 2: Add Widget to Page
1. In Givebutter, go to your campaign's **Sharing** → **Widgets** → **Embed**
2. Copy the widget embed code
3. In Weebly, go to the **Build** tab
4. Drag an **Embed Code** block to your page
5. Paste the widget code and publish
```html theme={null}
```
Widgets will **not display in the Weebly editor**. You must publish and view your live site to see
them.
## Customization
### Floating Button Position
```html theme={null}
```
Options: `bottom-right` (default), `bottom-left`
### Hide Widget on Specific Pages
Add this CSS to **Settings** → **SEO** → **Header Code**:
```html theme={null}
```
## Troubleshooting
* Library code must be in Settings → SEO → Header Code
* Widget code must be in an Embed Code block
* Campaign must be published (not draft)
* Site must be published (not just saved)
* Clear browser cache and refresh
Try using a full-width Embed Code block or a different page template.
Add multiple Embed Code blocks, each with only the widget code. The library code in the header
handles all widgets.
# Wix
Source: https://docs.givebutter.com/widgets/website-builders/wix
Add Givebutter donation widgets to your Wix website.
For a step-by-step walkthrough with screenshots, see our [full Wix
guide](https://help.givebutter.com/en/articles/6464972-how-to-use-givebutter-widgets-on-a-wix-website).
**Paid Wix plan required.** You need a Light, Core, Business, or Business Elite plan with a custom
domain to use Custom elements. Free Wix sites cannot install widgets.
## Prerequisites
* A paid Wix plan with custom domain
* A Givebutter account with at least one published campaign
## Installation
1. In Givebutter, go to **Settings** → **Developers** → **Widgets**
2. Click **Wix** and copy the **Server URL** (library code)
3. Go to your campaign's **Sharing** → **Widgets** → **Embed**
4. Copy the **Widget ID** (shown in green in the code)
1. In the Wix editor, click **+** → **Embed Code** → **Custom element** 2. Click **Choose Source**
2. Enter your **Server URL** and set Tag name to `givebutter-widget` 4. Click **Apply**
1. Click **Set Attributes** → **Add Attribute**
2. Set Attribute name: `id` and Value: your Widget ID
3. Click **Apply**
4. Position the widget and **Publish**
To make a widget appear site-wide, add it to your site's **header** or **footer**.
## Customization
### Floating Button Position
1. Click **Set Attributes** → **Add Attribute**
2. Set Attribute name: `position` and Value: `bottom-left`
3. Click **Apply**
Options: `bottom-right` (default), `bottom-left`
### Hide Widget on Specific Pages
Add this CSS in **Settings** → **Custom Code** for that page:
```css theme={null}
givebutter-widget[id='YOUR_WIDGET_ID'] {
display: none;
}
```
## Troubleshooting
This is normal. The widget displays properly on your published live site.
* Must be on a paid Wix plan (not free) - Server URL must be correct - Tag name must be exactly
`givebutter-widget` - Widget ID attribute must be set correctly - Campaign must be published
Move the custom element to your site's header or footer for site-wide display.
# WordPress
Source: https://docs.givebutter.com/widgets/website-builders/wordpress
Add Givebutter donation widgets to your WordPress website with the free plugin.
For a step-by-step walkthrough with screenshots, see our [full WordPress
guide](https://help.givebutter.com/en/articles/7141647-how-to-use-givebutter-widgets-on-a-wordpress-website).
**WordPress.com Business or eCommerce plan required.** Free WordPress plans cannot install
plugins. Self-hosted WordPress.org sites work with any plan.
## Prerequisites
* WordPress.com Business/eCommerce plan or self-hosted WordPress.org site
* A Givebutter account with at least one published campaign
## Installation
1. In Givebutter, go to **Settings** → **Developers** → **Widgets**
2. Click **WordPress** and download the plugin
3. In WordPress, go to **Plugins** → **Add New** → **Upload Plugin**
4. Upload the file and click **Install Now** → **Activate**
1. Go to **Settings** → **Givebutter Widgets** 2. Enter your Givebutter Account ID (found in
**Settings** → **Developers** → **Widgets**) 3. Click **Save Changes**
1. In Givebutter, go to your campaign's **Sharing** → **Widgets** → **Embed**
2. Copy the Widget ID
3. Edit your WordPress page/post
4. Add a **Shortcode** block with: `[givebutter-widget id="YOUR_WIDGET_ID"]`
5. Publish
### Alternative: Custom HTML Block
Instead of a shortcode, you can use a **Custom HTML** block:
```html theme={null}
```
## Customization
### Floating Button Position
```html theme={null}
```
Options: `bottom-right` (default), `bottom-left`
### Hide Widget on Specific Pages
Add this CSS to your theme's Custom CSS:
```css theme={null}
givebutter-widget[id='YOUR_WIDGET_ID'] {
display: none;
}
```
## Troubleshooting
* Account ID must be correct in plugin settings
* Campaign must be published (not draft)
* Widget ID must be correct
* Clear cache and refresh
Try adding the widget to a full-width section or adjust your theme's content width settings.
# Button Widget
Source: https://docs.givebutter.com/widgets/widget-types/button
Embed a customizable donation button that opens a popup form on your site.
The Button Widget creates an attractive, clickable button on your website that opens a donation form in a popup modal. It's perfect for adding donation functionality without disrupting your page layout.
## Prerequisites
Before using the Button Widget, make sure you've [installed the Widgets library](/widgets/getting-started).
## Quick Setup
The fastest way to add a button widget is through the Givebutter Dashboard:
1. Visit your [Givebutter Dashboard](https://givebutter.com/dashboard)
2. Select your campaign and navigate to **Sharing** > **Widgets**
3. Choose **Button** as the widget type and customize the appearance
4. Copy the generated code and paste it on your site
```html theme={null}
```
## Manual Setup
For full control without using the dashboard, create buttons directly with the `` tag:
```html Basic Button theme={null}
```
```html Customized Button theme={null}
```
```html Multiple Buttons theme={null}
```
## Configuration Options
Customize your button's appearance by adding attributes to the `` element:
### Required Attributes
| Attribute | Description | Example |
| ---------- | ---------------------------------------- | ------------- |
| `campaign` | Your campaign code (from your dashboard) | `my-campaign` |
### Styling Attributes
| Attribute | Description | Default | Type |
| ------------------ | ---------------------------------------- | --------- | ------------------------------------------------- |
| `label` | Text displayed on the button | `Donate` | String |
| `hide-label` | Hide the label text (icon only) | `false` | Boolean |
| `label-color` | Color of the text and icon | `#FFFFFF` | Hex Color Code |
| `background-color` | Background color of the button | `#3366FF` | Hex Color Code |
| `border-color` | Color of the button border | None | Hex Color Code |
| `border-width` | Width of the border in pixels | `0` | Number |
| `border-radius` | Corner roundness (higher = more rounded) | `100` | Number |
| `drop-shadow` | Display a shadow beneath the button | `true` | Boolean |
| `icon` | Icon to display | `heart` | `heart`, `gift`, `giving_hands`, `ticket`, `none` |
| `icon-position` | Position of the icon | `left` | `left`, `right` |
| `type` | How the button opens the form | `modal` | `modal`, `link` |
| `max-width` | Maximum width of the modal | `560px` | CSS value |
### Positioning
Use these attributes to create a fixed-position floating button:
| Attribute | Description | Default | Options |
| ------------------- | ------------------------------------ | ------- | ------------------------------------------------------------------------------------- |
| `position` | Fixed position on the screen | None | `top-left`, `top-right`, `middle-left`, `middle-right`, `bottom-left`, `bottom-right` |
| `vertical-offset` | Vertical offset from edge (pixels) | `16` | Number |
| `horizontal-offset` | Horizontal offset from edge (pixels) | `16` | Number |
### Examples
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
## Troubleshooting
**Button not appearing?** Make sure you've [installed the Widgets
library](/widgets/getting-started) on your page and that your campaign code is correct.
**Color not working?** Hex codes must include the `#` symbol (e.g., `#FF8A00` not `FF8A00`).
# Form Widget
Source: https://docs.givebutter.com/widgets/widget-types/form
Embed a full donation form directly on your page for a seamless giving experience.
The Form Widget embeds a complete donation form inline on your webpage. Unlike the button widget which opens a popup, the form widget displays directly on your page, creating a seamless experience without any popups or redirects.
## Prerequisites
Before using the Form Widget, make sure you've [installed the Widgets library](/widgets/getting-started).
## Quick Setup
The fastest way to add a form widget is through the Givebutter Dashboard:
1. Visit your [Givebutter Dashboard](https://givebutter.com/dashboard)
2. Select your campaign and navigate to **Sharing** > **Widgets**
3. Choose **Form** as the widget type and customize the appearance
4. Copy the generated code and paste it on your site
```html theme={null}
```
## Manual Setup
For full control without using the dashboard, create forms directly with the `` tag:
```html Basic Form theme={null}
```
```html With Goal Bar theme={null}
```
```html Custom Width theme={null}
```
## Configuration Options
### Required Attributes
| Attribute | Description | Example |
| ---------- | ---------------------------------------- | ------------- |
| `campaign` | Your campaign code (from your dashboard) | `my-campaign` |
### Optional Attributes
| Attribute | Description | Default |
| --------------- | --------------------------------- | ------- |
| `show-goal-bar` | Display a goal bar above the form | `false` |
| `theme-color` | Theme color for the goal bar | None |
| `max-width` | Maximum width of the form | `560px` |
| `max-height` | Maximum height of the form | None |
The form's internal styling (colors, fonts, branding) is controlled through your Givebutter
Dashboard campaign settings and automatically applied.
## Layout Considerations
The form widget is responsive and will adapt to its container width. Consider these best practices:
For optimal display:
* **Minimum width**: 320px (mobile phones)
* **Recommended width**: 400-600px for best readability
* **Maximum width**: No limit, but forms look best under 800px
Common layout patterns: - **Full-width section**: Great for dedicated donation pages - **Sidebar
widget**: Works in sidebars 300px+ wide - **Centered container**: Most popular for focused
donation experiences - **Multi-column**: Use columns for multiple campaign forms
* Forms expand automatically to fit content - No fixed height needed - Forms include all fields,
so ensure adequate vertical space - Consider page length when embedding multiple forms
* Forms automatically optimize for mobile devices
* Touch-friendly input fields and buttons
* Stacks elements vertically on small screens
* Test on actual mobile devices for best results
## Troubleshooting
**Form not appearing?** Make sure you've [installed the Widgets library](/widgets/getting-started)
on your page and that your campaign code is correct.
The form adapts to its container. Ensure the container is at least 320px wide. Check for CSS that might be constraining the width.
Forms expand vertically to fit content. Ensure there's no `max-height` or `overflow: hidden` on
parent containers.
You can embed multiple forms on the same page. Each will load independently. Consider spacing them
with margin/padding for better UX.
Form styling is controlled in your Givebutter Dashboard under campaign settings. Update your campaign's design settings to match your brand.
# Goal Bar Widget
Source: https://docs.givebutter.com/widgets/widget-types/goal-bar
Display a visual fundraising progress bar to motivate donors and showcase campaign momentum.
The Goal Bar Widget displays a dynamic progress bar showing how much of your fundraising goal has been reached. It's a powerful social proof tool that creates urgency and motivates donors to contribute by visualizing campaign progress in real-time.
## Prerequisites
Before using the Goal Bar Widget, make sure you've [installed the Widgets library](/widgets/getting-started).
## Quick Setup
The fastest way to add a goal bar widget is through the Givebutter Dashboard:
1. Visit your [Givebutter Dashboard](https://givebutter.com/dashboard)
2. Select your campaign and navigate to **Sharing** > **Widgets**
3. Choose **Goal Bar** as the widget type and customize the appearance
4. Copy the generated code and paste it on your site
```html theme={null}
```
## Manual Setup
For full control without using the dashboard, create goal bars directly with the `` tag:
```html Basic Goal Bar theme={null}
```
```html Customized Goal Bar theme={null}
```
```html Minimal Goal Bar theme={null}
```
## Configuration Options
Customize your goal bar's appearance by adding attributes to the `` element:
### Required Attributes
| Attribute | Description | Example |
| ---------- | ---------------------------------------- | ------------- |
| `campaign` | Your campaign code (from your dashboard) | `my-campaign` |
### Styling Attributes
| Attribute | Description | Default | Type |
| ------------------------ | --------------------------------- | -------------- | ----------------------------- |
| `progress-bar-color` | Color of the progress bar fill | `green` | Hex Color Code |
| `background-color` | Background color of the container | `#FFFFFF` | Hex Color Code |
| `text-color` | Color of text labels | `#000000` | Hex Color Code |
| `border-color` | Border color of the container | None | Hex Color Code |
| `border-width` | Border width in pixels | `1` | Number |
| `border-radius` | Corner roundness in pixels | `0` | Number |
| `padding` | Inner padding in pixels | `16` | Number |
| `size` | Height of the progress bar | `md` | `sm`, `md`, `lg` |
| `max-width` | Maximum width of the widget | `100%` | CSS value |
| `show-amount-raised` | Show the amount raised | `true` | Boolean |
| `show-raised-percentage` | Show the percentage complete | `true` | Boolean |
| `show-goal-amount` | Show the goal amount | `true` | Boolean |
| `type` | Style of the goal display | `progress-bar` | `progress-bar`, `thermometer` |
## Examples
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
```html theme={null}
```
The thermometer style displays your fundraising progress as a vertical thermometer, which is a classic visual metaphor for fundraising campaigns.
```html theme={null}
```
## Troubleshooting
**Goal bar not appearing?** Make sure you've [installed the Widgets
library](/widgets/getting-started) on your page and that your campaign code is correct.
Common causes:
* Campaign hasn't received any donations yet
* Campaign goal not set in Dashboard
* Campaign is not published/active
* Incorrect campaign code
**Solution:** Verify your campaign is active and has a goal set in your Givebutter Dashboard.
The goal bar is responsive and will fill its container width. If it appears too wide or narrow:
* Wrap it in a container with max-width
* Use CSS to control the parent element's width
* Check for conflicting CSS styles
```html theme={null}
```
# Signup Form Widget
Source: https://docs.givebutter.com/widgets/widget-types/signup-form
Capture email subscribers and grow your mailing list with an embedded signup form.
The Signup Form Widget lets you collect email addresses and grow your subscriber base directly from your website. Perfect for newsletters, updates, and building your donor community without requiring donations.
## Prerequisites
Before using the Signup Form Widget, make sure you've [installed the Widgets library](/widgets/getting-started).
## Quick Setup
The fastest way to add a signup form widget is through the Givebutter Dashboard:
1. Visit your [Givebutter Dashboard](https://givebutter.com/dashboard)
2. Navigate to **Marketing** > **Signup Forms**
3. Create and customize your signup form
4. Copy the generated code and paste it on your site
```html theme={null}
```
## Manual Setup
For full control without using the dashboard, create signup forms directly with the `` tag:
```html Basic Signup Form theme={null}
```
```html Custom Button theme={null}
```
```html With Image Banner theme={null}
```
## Configuration Options
### Required Attributes
| Attribute | Description | Example |
| --------- | ------------------------------------- | ------------- |
| `account` | Your account ID (from your dashboard) | `acct_abc123` |
### Content Attributes
| Attribute | Description | Default |
| ------------- | --------------------------- | ------- |
| `title` | Form heading text | None |
| `description` | Subheading/description text | None |
### Button Attributes
| Attribute | Description | Default |
| ------------------------- | ------------------------- | ----------- |
| `button-text` | Text on the submit button | `Subscribe` |
| `button-text-color` | Button text color | None |
| `button-background-color` | Button background color | None |
### Layout Attributes
| Attribute | Description | Default | Options |
| --------------- | -------------------------- | -------- | --------------------------------- |
| `layout` | Form layout style | `simple` | `simple`, `stacked`, `two_column` |
| `border-radius` | Corner roundness in pixels | `0` | Number |
| `image` | Background image URL | None | URL |
| `image-sizing` | How the image fits | `cover` | `cover`, `fit`, `stretch` |
### Behavior Attributes
| Attribute | Description | Default | Options |
| ------------ | ----------------------------- | -------- | ----------------- |
| `type` | Form display type | `static` | `static`, `popup` |
| `open-delay` | Delay before popup opens (ms) | `5000` | Number |
| `channel` | Communication channel | `email` | `email`, `sms` |
## Layout Considerations
The signup form widget is lightweight and responsive. Consider these best practices:
For optimal display:
* **Minimum width**: 280px (mobile phones)
* **Recommended width**: 300-500px for best readability
* **Maximum width**: No limit, but forms look best under 600px
Common placement patterns: - **Footer**: Capture subscribers at the bottom of every page -
**Sidebar**: Great for blog posts and content pages - **Pop-up/Modal**: Attention-grabbing (use
sparingly) - **Inline**: Within blog posts or between content sections - **Landing Page Hero**:
Primary CTA for list-building pages
* Signup forms are compact (typically 80-120px tall) - Include adequate padding around the form -
Consider success message height when planning layout - Forms expand slightly on validation errors
* Forms automatically optimize for mobile devices
* Touch-friendly input fields and buttons
* Keyboard opens automatically on focus
* Test on actual mobile devices for best results
## Troubleshooting
**Form not appearing?** Make sure you've [installed the Widgets library](/widgets/getting-started)
on your page and that your account ID is correct.
The form may still be loading. Ensure:
* The widgets script is loaded correctly
* Your account ID is valid
* No JavaScript errors in the browser console
* You're not blocking third-party scripts
Check these common issues: - Account ID matches your Givebutter account - Form submission
completed successfully (success message shown) - Allow a few minutes for data to sync - Check
spam/junk folders if using email confirmation
Verify that: - Email input has a valid email address - JavaScript is enabled in the browser - No
ad blockers interfering with the widget - Check browser console for errors
Signup form styling is controlled in your Givebutter Dashboard under **Marketing** > **Signup Forms** > **Design**. Update your form design settings to match your brand.
The success message is configured in your Dashboard. Check:
* Dashboard settings under **Marketing** > **Signup Forms** > **Messages**
* Ensure success message is enabled
* Try a different browser to rule out caching issues