---
title: "Create poll"
method: POST
path: "/polls"
tags: ["product:chat"]
---

# Create poll

`POST /polls`

Creates a new poll

## Request body

- CreatePollRequest, nullable — Contains all information needed to create a new poll
  - `allow_answers` boolean — Indicates whether users can suggest user defined answers
  - `allow_user_suggested_options` boolean
  - `custom` object — Custom data for this object
  - `description` string — A description of the poll
  - `enforce_unique_vote` boolean — Indicates whether users can cast multiple votes
  - `id` string
  - `is_closed` boolean — Indicates whether the poll is open for voting
  - `max_votes_allowed` integer — Indicates the maximum amount of votes a user can cast
  - `name` string, required — The name of the poll
  - `options` PollOptionInput[]
    - `custom` object
    - `text` string
  - `user` UserRequest — User request object
    - `custom` object — Custom user data
    - `id` string, required — User ID
    - `image` string — User's profile image URL
    - `invisible` boolean
    - `language` string
    - `name` string — Optional name of user
    - `privacy_settings` PrivacySettingsResponse
      - `delivery_receipts` DeliveryReceiptsResponse
        - `enabled` boolean
      - `read_receipts` ReadReceiptsResponse
        - `enabled` boolean
      - `typing_indicators` TypingIndicatorsResponse
        - `enabled` boolean
    - `role` string — User's global role
    - `teams` string[] — List of teams the user belongs to
    - `teams_role` object — Map of team-specific roles for the user
  - `user_id` string
  - `voting_visibility` 'anonymous' | 'public'

## Response `201`

Successful response

- PollResponse, nullable
  - `duration` string, required — Duration of the request in milliseconds
  - `poll` PollResponseData, required
    - `allow_answers` boolean, required
    - `allow_user_suggested_options` boolean, required
    - `answers_count` integer, required
    - `created_at` string, date-time, required
    - `created_by` UserResponse — User response object
      - `avg_response_time` integer
      - `ban_expires` string, date-time — Date when ban expires
      - `banned` boolean, required — Whether a user is banned or not
      - `blocked_user_ids` string[], required
      - `bypass_moderation` boolean
      - `created_at` string, date-time, required — Date/time of creation
      - `custom` object, required — Custom data for this object
      - `deactivated_at` string, date-time — Date of deactivation
      - `deleted_at` string, date-time — Date/time of deletion
      - `devices` DeviceResponse[] — List of devices user is using
        - `created_at` string, date-time, required — Date/time of creation
        - `disabled` boolean — Whether device is disabled or not
        - `disabled_reason` string — Reason explaining why device had been disabled
        - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
        - `id` string, required — Device ID
        - `push_provider` string, required — Push provider
        - `push_provider_name` string — Push provider name
        - `user_id` string, required — User ID
        - `voip` boolean — When true the token is for Apple VoIP push notifications
      - `id` string, required — Unique user identifier
      - `image` string
      - `invisible` boolean, required
      - `language` string, required — Preferred language of a user
      - `last_active` string, date-time — Date of last activity
      - `name` string — Optional name of user
      - `online` boolean, required — Whether a user online or not
      - `privacy_settings` PrivacySettingsResponse
        - `delivery_receipts` DeliveryReceiptsResponse
          - `enabled` boolean
        - `read_receipts` ReadReceiptsResponse
          - `enabled` boolean
        - `typing_indicators` TypingIndicatorsResponse
          - `enabled` boolean
      - `push_notifications` PushNotificationSettingsResponse
        - `disabled` boolean
        - `disabled_until` string, date-time
      - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
      - `role` string, required — Determines the set of user permissions
      - `shadow_banned` boolean, required — Whether a user is shadow banned
      - `teams` string[], required — List of teams user is a part of
      - `teams_role` object
      - `updated_at` string, date-time, required — Date/time of the last update
    - `created_by_id` string, required
    - `custom` object, required
    - `description` string, required
    - `enforce_unique_vote` boolean, required
    - `id` string, required
    - `is_closed` boolean
    - `latest_answers` PollVoteResponseData[], required
      - `answer_text` string
      - `created_at` string, date-time, required
      - `id` string, required
      - `is_answer` boolean
      - `option_id` string, required
      - `poll_id` string, required
      - `updated_at` string, date-time, required
      - `user` UserResponse — User response object
        - `avg_response_time` integer
        - `ban_expires` string, date-time — Date when ban expires
        - `banned` boolean, required — Whether a user is banned or not
        - `blocked_user_ids` string[], required
        - `bypass_moderation` boolean
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required — Custom data for this object
        - `deactivated_at` string, date-time — Date of deactivation
        - `deleted_at` string, date-time — Date/time of deletion
        - `devices` DeviceResponse[] — List of devices user is using
          - `created_at` string, date-time, required — Date/time of creation
          - `disabled` boolean — Whether device is disabled or not
          - `disabled_reason` string — Reason explaining why device had been disabled
          - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
          - `id` string, required — Device ID
          - `push_provider` string, required — Push provider
          - `push_provider_name` string — Push provider name
          - `user_id` string, required — User ID
          - `voip` boolean — When true the token is for Apple VoIP push notifications
        - `id` string, required — Unique user identifier
        - `image` string
        - `invisible` boolean, required
        - `language` string, required — Preferred language of a user
        - `last_active` string, date-time — Date of last activity
        - `name` string — Optional name of user
        - `online` boolean, required — Whether a user online or not
        - `privacy_settings` PrivacySettingsResponse
          - `delivery_receipts` DeliveryReceiptsResponse
            - `enabled` boolean
          - `read_receipts` ReadReceiptsResponse
            - `enabled` boolean
          - `typing_indicators` TypingIndicatorsResponse
            - `enabled` boolean
        - `push_notifications` PushNotificationSettingsResponse
          - `disabled` boolean
          - `disabled_until` string, date-time
        - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
        - `role` string, required — Determines the set of user permissions
        - `shadow_banned` boolean, required — Whether a user is shadow banned
        - `teams` string[], required — List of teams user is a part of
        - `teams_role` object
        - `updated_at` string, date-time, required — Date/time of the last update
      - `user_id` string
    - `latest_votes_by_option` object, required
    - `max_votes_allowed` integer
    - `name` string, required
    - `options` PollOptionResponseData[], required
      - `custom` object, required
      - `id` string, required
      - `text` string, required
    - `own_votes` PollVoteResponseData[], required
      - `answer_text` string
      - `created_at` string, date-time, required
      - `id` string, required
      - `is_answer` boolean
      - `option_id` string, required
      - `poll_id` string, required
      - `updated_at` string, date-time, required
      - `user` UserResponse — User response object
        - `avg_response_time` integer
        - `ban_expires` string, date-time — Date when ban expires
        - `banned` boolean, required — Whether a user is banned or not
        - `blocked_user_ids` string[], required
        - `bypass_moderation` boolean
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required — Custom data for this object
        - `deactivated_at` string, date-time — Date of deactivation
        - `deleted_at` string, date-time — Date/time of deletion
        - `devices` DeviceResponse[] — List of devices user is using
          - `created_at` string, date-time, required — Date/time of creation
          - `disabled` boolean — Whether device is disabled or not
          - `disabled_reason` string — Reason explaining why device had been disabled
          - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
          - `id` string, required — Device ID
          - `push_provider` string, required — Push provider
          - `push_provider_name` string — Push provider name
          - `user_id` string, required — User ID
          - `voip` boolean — When true the token is for Apple VoIP push notifications
        - `id` string, required — Unique user identifier
        - `image` string
        - `invisible` boolean, required
        - `language` string, required — Preferred language of a user
        - `last_active` string, date-time — Date of last activity
        - `name` string — Optional name of user
        - `online` boolean, required — Whether a user online or not
        - `privacy_settings` PrivacySettingsResponse
          - `delivery_receipts` DeliveryReceiptsResponse
            - `enabled` boolean
          - `read_receipts` ReadReceiptsResponse
            - `enabled` boolean
          - `typing_indicators` TypingIndicatorsResponse
            - `enabled` boolean
        - `push_notifications` PushNotificationSettingsResponse
          - `disabled` boolean
          - `disabled_until` string, date-time
        - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
        - `role` string, required — Determines the set of user permissions
        - `shadow_banned` boolean, required — Whether a user is shadow banned
        - `teams` string[], required — List of teams user is a part of
        - `teams_role` object
        - `updated_at` string, date-time, required — Date/time of the last update
      - `user_id` string
    - `updated_at` string, date-time, required
    - `vote_count` integer, required
    - `vote_counts_by_option` object, required
    - `voting_visibility` string, required

## Other responses

- `400` — Bad request
- `429` — Too many requests

---

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