---
title: "Create a suggestion box"
method: POST
path: "/api/v2/suggestion_boxes"
tags: ["Suggestion Boxes"]
---

# Create a suggestion box

`POST /api/v2/suggestion_boxes`

## Request

- Base URL: `https://yournation.nationbuilder.com`
- URL: `https://yournation.nationbuilder.com/api/v2/suggestion_boxes`
- Auth: HTTP bearer

Creates a SuggestionBox page from given data.

**Required attributes:**
- `site_id` - ID of the site to create the page on
- `name` - Display name for the page
- `status` - Publication status ('published', 'draft', 'unlisted')

**Optional attributes:**
- `slug` - URL-friendly identifier -- `https://yoursite.com/slug` (auto-generated from name if not provided)
- `content` - Description/instructions for the page
- `tag_list` - Comma-separated list of tags to be used for categorizing Suggestions
- `require_image` - Whether suggestions must include images (default: false)
- `send_auto_responses` - Enable automatic thank you emails when suggestions are submitted (boolean, default: true)
- `auto_response_broadcaster` - Broadcaster ID for automatic thank you responses (integer, defaults to site broadcaster)
- `send_response_notifications` - Enable automatic emails when community members respond to suggestions (boolean, default: true)
- `response_notification_broadcaster` - Broadcaster ID for community response notifications (integer, defaults to site broadcaster)
- `send_official_response_notifications` - Enable automatic email notifications when officials provide answers to suggestions (boolean, default: true)
- `official_response_notification_broadcaster` - Broadcaster ID for official response notifications (integer, defaults to site broadcaster)
- `point_person_id` - Signup ID of the Point Person assigned to manage Suggestions in this SuggestionBox

## Request body

- SuggestionBoxCreateRequest: The JSON:API top-level document shape for create requests, whose data member carries the new resource's type and attributes.
  - `data` object, required
    - `type` 'suggestion_boxes', required: The JSON:API resource type of the resource being created.
    - `attributes` SuggestionBoxReadWriteAttributes: The attributes of a suggestion_box that can be both read and written.
      - `allow_image` boolean: Allow image attachments for submissions
      - `auto_response_broadcaster` string, nullable: Broadcaster ID for automatic thank you responses when suggestions are submitted
      - `content` string, nullable: Instructions or description for this SuggestionBox
      - `external_id` string, nullable: Client-provided idempotency key stored on the related Page (unique across pages).
      - `headline` string, nullable: Page headline. If not provided, will default to name
      - `name` string: Page name for this SuggestionBox
      - `official_response_notification_broadcaster` string, nullable: Broadcaster ID for official response notifications to suggestion authors
      - `point_person_id` string, nullable: Signup ID of the Point Person assigned to manage Suggestions in this SuggestionBox
      - `require_image` boolean: Require image attachments for submissions
      - `response_notification_broadcaster` string, nullable: Broadcaster ID for community response notifications
      - `send_auto_responses` boolean: Whether to send automatic thank you email responses when suggestions are submitted
      - `send_official_response_notifications` boolean: Whether to send automatic email notifications to suggestion authors when officials provide answers/responses. When true, allows the notify_followers parameter to trigger email notifications when providing official responses to suggestions.
      - `send_response_notifications` boolean: Whether to send emails to suggestion authors when other users respond to suggestions
      - `site_id` string: Site where this content will be published
      - `slug` string: URL path for this content. Must be unique within the site. Auto-generated from name if not provided.
      - `status` 'archived' | 'deleted' | 'expired' | 'hidden' | 'published' | 'rule_violated' | 'unlisted': Publication status of the page. Must be one of: archived, deleted, expired, hidden, published, rule_violated, unlisted
      - `tag_list` string, nullable: Comma-separated list of tags to be used for categorizing Suggestions
      - `title` string: Page title. If not provided, or set to empty, will default to "name - site.name"

## Response `201`

The newly created suggestion box.

- SuggestionBoxShowResponse: The JSON:API top-level document shape for responses returning a single resource under the data member.
  - `data` object, required: A JSON:API resource identifier object, the type/id pair that uniquely identifies a single resource.
    - `id` string, required: Unique identifier of the resource.
    - `type` 'suggestion_boxes', required: The JSON:API resource type.
    - `attributes` object: The read-only attributes of a suggestion_box.
      - `allow_image` boolean: Allow image attachments for submissions
      - `auto_response_broadcaster` string, nullable: Broadcaster ID for automatic thank you responses when suggestions are submitted
      - `content` string, nullable: Instructions or description for this SuggestionBox
      - `external_id` string, nullable: Client-provided idempotency key stored on the related Page (unique across pages).
      - `headline` string, nullable: Page headline. If not provided, will default to name
      - `name` string: Page name for this SuggestionBox
      - `official_response_notification_broadcaster` string, nullable: Broadcaster ID for official response notifications to suggestion authors
      - `point_person_id` string, nullable: Signup ID of the Point Person assigned to manage Suggestions in this SuggestionBox
      - `require_image` boolean: Require image attachments for submissions
      - `response_notification_broadcaster` string, nullable: Broadcaster ID for community response notifications
      - `send_auto_responses` boolean: Whether to send automatic thank you email responses when suggestions are submitted
      - `send_official_response_notifications` boolean: Whether to send automatic email notifications to suggestion authors when officials provide answers/responses. When true, allows the notify_followers parameter to trigger email notifications when providing official responses to suggestions.
      - `send_response_notifications` boolean: Whether to send emails to suggestion authors when other users respond to suggestions
      - `site_id` string: Site where this content will be published
      - `slug` string: URL path for this content. Must be unique within the site. Auto-generated from name if not provided.
      - `status` 'archived' | 'deleted' | 'expired' | 'hidden' | 'published' | 'rule_violated' | 'unlisted': Publication status of the page. Must be one of: archived, deleted, expired, hidden, published, rule_violated, unlisted
      - `tag_list` string, nullable: Comma-separated list of tags to be used for categorizing Suggestions
      - `title` string: Page title. If not provided, or set to empty, will default to "name - site.name"
      - `created_at` string, date-time
      - `page_id` string: Associated page ID (read-only)
      - `updated_at` string, date-time
  - `included` Resource[]: Sideloaded resources requested via the include query parameter. Each entry is a full resource object whose shape is documented under its own resource type.
    - `id` string, required: Unique identifier of the resource.
    - `type` string, required: The JSON:API resource type.
    - `attributes` object: The attributes of the resource, as documented for its resource type.
    - `relationships` object: References from this resource to other resources in the document.
  - `meta` object: Non-standard information about the document. Empty unless the endpoint has metadata to convey.

## Other responses

- `400`: A suggestion box with this slug already exists.
- `401`: The access token is missing, expired, or not authorized to access this resource.
- `422`: Model validations failed for the resource being created or updated. Unlike this API's other errors, validation failures are returned as a JSON:API errors document locating each invalid field.
- `429`: The access token has exceeded its request quota for the current rate-limit window.

## Changes

- **2026-11-05** `d5c88ca497ac`: 4 breaking, 2 warning, 8 info
  - added `#/components/schemas/create_request_document, subschema #2` to the request body `allOf` list
  - the request's body type changed from `object` to no type
  - the response's body type changed from `object` to no type for status `201`
  - removed the required property `data` from the response with the `201` status
  - …10 more
- **2026-02-14** `31995b0a1e61`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api/changes/api/v2/suggestion_boxes/post.md)

---

[API](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api.md) - [All operations](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api/revisions/d5c88ca497ac?raw)
