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

# listCampaignQuestions

`GET /campaigns/{campaign}/questions`

## Request

- Base URL: `https://pro.gofundme.com/api/2.0`
- URL: `https://pro.gofundme.com/api/2.0/campaigns/{campaign}/questions`
- Auth: OAuth 2
  - Password
  - Token URL: `/oauth2/auth`

Retrieves a list of all questions for a specific Campaign. Questions marked as `is_required: true` will be treated as pre-conversion (shown before donation), and those marked as `is_required: false` will be treated as post-conversion (shown after donation) only where supported.

## Path parameters

- `campaign` integer, required

## Query parameters

- `fields` 'campaign_id' | 'created_at' | 'deleted_at' | 'enum_options' | 'id' | 'is_required' | 'is_deleted' | 'label' | 'location' | 'tag' | 'type' | 'updated_at' | 'weight' | 'product_id'
- `page` integer
- `per_page` integer

## Response `200`

Success

- object
  - `current_page` integer: Index of current page
  - `data` object[]: 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
  - `first_page_url` string, nullable: URL of first page of results
  - `from` integer, nullable: Index of first displayed result within total result set
  - `last_page` integer: Index of last page in result set
  - `last_page_url` string, nullable: URL of last page of results
  - `next_page_url` string, nullable: URL of next page of results
  - `path` string, nullable: URL of current page of results
  - `per_page` integer: Maximum number of records returned per page of results
  - `prev_page_url` string, nullable: URL of previous page of results
  - `links` PaginationLink[]: Collection of objects representing pages {label, URL, active} that can be used to request the associated page of records.
    - `label` string: Identifier of the page.
    - `url` string, nullable: URL that can be used to fetch associated page of records.
    - `active` boolean: Identifies whether the previously requested page matches the page this link object references.
  - `to` integer, nullable: Index of last displayed result within total result set
  - `total` integer: Total count of records in result set

## Other responses

- `403`: Requester is not authorized to perform action
- `404`: Campaign not found

## Changes

- **2026-09-17** `206a8046892e`: 1 warning
  - added the new `hidden` enum value to the `allOf[subschema #2]/data/items/location` response property for the response status `200`

[Operation history](https://skmtc.dev/gofundme/apis/gofundme-pro-api/changes/campaigns/:campaign/questions/get.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)
