---
title: "createCampaignFundraisingPage"
method: POST
path: "/campaigns/{campaign}/fundraising-pages"
tags: ["Fundraising Page"]
---

# createCampaignFundraisingPage

`POST /campaigns/{campaign}/fundraising-pages`

## Request

- Base URL: `https://pro.gofundme.com/api/2.0`
- URL: `https://pro.gofundme.com/api/2.0/campaigns/{campaign}/fundraising-pages`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `/oauth2/auth`
  - OAuth 2
    - Password
    - Token URL: `/oauth2/auth`

Create new Campaign Fundraising Page

## Path parameters

- `campaign` integer, required

## Request body

- FundraisingPageFillableCreate
  - `alias` string: Alias of the Fundraising Page
  - `cover_photo_id` integer, nullable: Fundraising Page cover photo
  - `designation_id` integer, nullable: Designation ID for this Fundraising Page
  - `ended_at` string, date-time, nullable: Page end date
  - `intro_text` string: HTML Formatted string for intro text
  - `is_tribute` boolean, nullable: Flag denoting whether Fundraising Page is a tribute to someone
  - `logo_id` integer, nullable: ID of Asset used as the Fundraising Page logo
  - `member_email_text` string, nullable: HTML formatted string for member email body
  - `member_id` integer: Member ID associated with this Fundraising Page
  - `moment_id` integer, nullable: Catalog moment the fundraiser selected. Must be enabled for the campaign or the request is rejected with a 400 response. Ignored without error when the campaign is not whitelabel P2P or the moments rollout is off — inspect moment_id on the response to confirm the selection was stored. Honored only on creation; ignored on update.
  - `moment_answers` object[], nullable: Answers to the selected moment's questions; requires moment_id. Duplicate moment_question_id values and questions outside the selected moment are rejected with a 400 response. Ignored without error whenever moment_id is (see its description). Honored only on creation; ignored on update.
    - `moment_question_id` integer, required: Moment question being answered
    - `answer` string, nullable: The fundraiser's answer
  - `raw_currency_code` string: ISO code of the default currency in which this Fundraising Page should be presented
  - `raw_goal` string: Raw fundraising goal for this Fundraising Page (returned as string)
  - `supporter_first_name` string, nullable: Optional. Recorded as the first name on the supporter created for the fundraising page owner when the campaign's organization has Contact-First Architecture enabled; ignored otherwise. Leading and trailing whitespace is trimmed before storage, and emoji characters are rejected with a 400 response. Honored only on fundraising-page creation (POST /campaigns/{campaign}/fundraising-pages and POST /fundraising-teams/{fundraising_team}/fundraising-pages); silently ignored on update (PUT /fundraising-pages/{fundraising_page}).
  - `supporter_last_name` string, nullable: Optional. Recorded as the last name on the supporter created for the fundraising page owner when the campaign's organization has Contact-First Architecture enabled; ignored otherwise. Leading and trailing whitespace is trimmed before storage, and emoji characters are rejected with a 400 response. Honored only on fundraising-page creation (POST /campaigns/{campaign}/fundraising-pages and POST /fundraising-teams/{fundraising_team}/fundraising-pages); silently ignored on update (PUT /fundraising-pages/{fundraising_page}).
  - `thankyou_email_text` string: HTML formatted string for thank you email body
  - `thank_you_text` string: Default thank you text on the thank you page
  - `title` string: Page title

## Response `200`

Success

- FundraisingPage
  - `id` integer: ID of Fundraising Page
  - `alias` string: Alias of the Fundraising Page
  - `campaign_id` integer: Parent Campaign ID
  - `commitment_id` integer, nullable: Commitment ID
  - `cover_photo_id` integer, nullable: Fundraising Page cover photo
  - `created_at` string, date-time: Datetime at which the Fundraising Page was created
  - `currency_code` string, nullable: ISO code of the currency against which this Fundraising Page is normalized.
  - `designation_id` integer, nullable: Designation ID for this Fundraising Page
  - `ended_at` string, date-time, nullable: Page end date
  - `fundraising_team_id` integer, nullable: Fundraising Team ID to whom this Fundraising Page is associated
  - `goal` number, float, nullable: Fundraising goal for this Fundraising Page normalized against 'currency_code'
  - `intro_text` string: HTML Formatted string for intro text
  - `is_primary` boolean: Flag denoting primary Fundraising Page for child Fundraising Pages
  - `is_tribute` boolean, nullable: Flag denoting whether Fundraising Page is a tribute to someone
  - `logo_id` integer, nullable: ID of Asset used as the Fundraising Page logo
  - `logo_url` string, nullable: URL for logo image
  - `member_email_text` string, nullable: HTML formatted string for member email body
  - `member_id` integer: Member ID associated with this Page
  - `moment_id` integer, nullable: Catalog moment selected at create time (whitelabel P2P only)
  - `raw_currency_code` string: ISO code of the default currency in which this Fundraising Page should be presented
  - `raw_goal` string: Raw fundraising goal for this Fundraising Page (returned as string)
  - `organization_id` integer: Organization ID
  - `parent_id` integer: Parent Fundraising Page ID
  - `questions` Question[]: Collection of Questions
    - `campaign_id` integer: Primary identifier of Campaign
    - `created_at` string, date-time: Date/time of when record created
    - `deleted_at` string, date-time, nullable: Date/time of when record deleted
    - `id` integer: Primary identifier of record
    - `is_deleted` boolean: Question deleted or not
    - `is_required` boolean: Whether the Question is required or not. If `is_required` is `true`, the question will be treated as pre-conversion (shown before donation), otherwise it will be treated as post-conversion (shown after donation) for supported workflows.
    - `is_pre_conversion` boolean: Whether the Question should be shown before donation (pre-conversion) or after donation (post-conversion). When true, the question is displayed before the donation is processed.
    - `label` string, required: Question label
    - `location` 'donation_page' | 'team_creation' | 'page_creation' | 'campaign_registration' | 'hidden', required: Question location. `hidden` is a read-only state set exclusively by the reduce-custom-questions hide mutation -- PUT /questions/{question} rejects it as a write value.
    - `product_id` integer, nullable: Identifier of associated product, such as a ticket
    - `tag` 'address' | 'address2' | 'address_type' | 'birthdate' | 'blog' | 'cellphone' | 'city' | 'company_name' | 'country' | 'email_address' | 'email_type' | 'emergency_first_name' | 'emergency_last_name' | 'emergency_phone' | 'event_waiver' | 'first_name' | 'gender' | 'pronoun' | 'homephone' | 'last_name' | 'middle_name' | 'postal_code' | 'prefix' | 'run_walk' | 'shirt_size' | 'state' | 'suffix' | 'text_opt_in' | 'website', nullable: Question tag, unique for a location on a campaign
    - `type` 'boolean' | 'integer' | 'currency' | 'enum' | 'text' | 'string' | 'date' | 'yes_no', required: Type of the Question
    - `updated_at` string, date-time, nullable: Date/time of last record update
    - `weight` integer, nullable: Weight of the Question, used for display order
  - `status` 'active' | 'inactive' | 'deleted' | 'pending_questions' | 'pending_approval' | 'pending_more_info': Status for this Fundraising Page
  - `supporter_id` integer, nullable: Supporter ID associated with the Fundraising Page
  - `team_role` 'primary-captain' | 'co-captain', nullable: If Fundraising Page is for a Team Member, it will contain the role of the Team Member
  - `thankyou_email_text` string, nullable: HTML formatted string for thank you email body
  - `thank_you_text` string, nullable: Default thank you text on the thank you page
  - `title` string: Page title
  - `updated_at` string, date-time, nullable: Date the Fundraising Page was last updated
  - `canonical_url` string: The canonical url of the Fundraising Page

## Other responses

- `400`: Malformed request made
- `403`: Requester is not authorized to perform action
- `404`: Campaign not found

## Changes

- **2026-09-23** `89ff5d9e304b`: 4 info
  - added the new optional request property `moment_answers`
  - added the new optional request property `moment_id`
  - added the non-success response with the status `400`
  - added the optional property `moment_id` to the response with the `200` status
- **2026-09-17** `206a8046892e`: 1 warning
  - added the new `hidden` enum value to the `questions/items/location` response property for the response status `200`

[Operation history](https://skmtc.dev/gofundme/apis/gofundme-pro-api/changes/campaigns/:campaign/fundraising-pages/post.md)

---

[API](https://skmtc.dev/gofundme/apis/gofundme-pro-api.md) - [All operations](https://skmtc.dev/gofundme/apis/gofundme-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gofundme/apis/gofundme-pro-api/revisions/094a1e510fe9?raw)
