title and funds are required — all other fields have sensible defaults.
The form is immediately live at charitystack.com/donate/{formID} unless you set active to false.
Endpoint
Authentication
string
required
Bearer token using your API key. Format:
Bearer cs_live_your_keyRequest body
Required fields
string
required
Display name for the form. Must be unique within your account.
string[]
required
List of fund names donors can designate their gift to. At least one required.
Form type
string
default:"fundraising"
fundraising or event. Event forms require at least one ticket.string
default:"standard"
For fundraising forms only. Controls how amounts are presented:
standard— Free-form amounts with suggested valuesgiving_level— Named tiers (requiresgivingLevelsarray)sponsorship— Grouped packages (requiressponsorshipGroupsarray)
The
formType and amountType you send are mapped to an internal value in the response. See Form type mapping for details.Frequencies & amounts
string[]
Donation frequencies to enable. Values:
ONE_TIME, DAILY, WEEKLY, MONTHLY, ANNUALLY. Required for fundraising forms. Event forms default to ["ONE_TIME"].string
Pre-selected frequency when the form loads. Defaults to the first item in
frequencies.number[]
default:"[25, 50, 100, 250, 500]"
Suggested one-time amounts. Each must be between 1,000,000.
number[]
default:"[10, 25, 50, 100]"
Suggested monthly amounts.
Giving levels
object[]
Named donation tiers. Required when
amountType is giving_level.Each object requires title (string), amount (number, > 0), and description (string).Sponsorship groups
object[]
Sponsorship packages. Required when
amountType is sponsorship. Each group must have at least one option.Each group: groupTitle (string), description (string), options array of { optionTitle, amount }.Appearance
string
default:"#3B82F6"
Hex color for form styling. Must be valid format:
#XXXXXX.string
Supporting text shown below the title. Maximum 650 characters.
boolean
default:"true"
Set to
false to create the form in a draft state.Donor options
Fundraising features
Event fields
boolean
default:"false"
Display event date, time, and location. When
true, eventDate and startTime become required.Tickets (event forms)
object[]
Event tickets. Required for event forms — at least one ticket must be provided.Each ticket requires:
name(string) — must be unique across all ticketsprice(number) — must be >= 0 (free tickets allowed)quantity(integer) — must be > 0ticketType(string) —INDIVIDUALorGROUPgroupSize(integer) — required forGROUPtickets, must be > 1
Promo codes (event forms)
object[]
Discount codes for tickets. Each requires
code, discountType (percentage or amount), discountValue, quantity, and applicableTickets (array of ticket names).Custom email
boolean
default:"false"
Enable custom receipt emails. When
true, replyToAddress, emailSubject, and customMessage are all required.Custom inputs & FAQs
object[]
Additional form fields. Each requires
question, inputType (short_text, long_text, single_select, multi_select), and required (boolean). Dropdown types (single_select, multi_select) require an options array with at least 2 items.object[]
FAQ items displayed on the form. Each requires
question and answer.Response
Status codes
Examples
Fundraising form
cURL
Event form
cURL