---
title: "createCampaignQuestion"
method: POST
path: "/campaigns/{campaign}/questions"
tags: ["Question"]
---

# createCampaignQuestion

`POST /campaigns/{campaign}/questions`

Create a new question for a specific campaign. Questions marked as required will automatically be treated as pre-conversion (where supported).

## Path parameters

- `campaign` integer, required

## Request body

- Question
  - `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', required — Question location
  - `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

## Response `200`

Success

- QuestionWithEnumOptions
  - `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', required — Question location
  - `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
  - `enum_options` QuestionEnumOption[] — Custom answer options for the question. Required if `type` is `enum`.
    - `label` string — QuestionEnumOption label
    - `question_id` integer — QuestionEnumOption Question ID

## Other responses

- `403` — Requester is not authorized to perform this action
- `404` — Campaign not found
- `500` — Error when trying to duplicate a question across campaigns

---

[API](https://skmtc.net/gofundme/apis/gofundme-pro-api.md) · [All operations](https://skmtc.net/gofundme/apis/gofundme-pro-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gofundme/gofundme-pro-api/versions/d22bb925eeed/schema)
