---
title: "Start/schedule campaign"
method: POST
path: "/campaigns/{id}/start"
tags: ["product:chat"]
---

# Start/schedule campaign

`POST /campaigns/{id}/start`

Starts or schedules a campaign

## Path parameters

- `id` string, required

## Request body

- StartCampaignRequest, nullable
  - `scheduled_for` string, date-time
  - `stop_at` string, date-time

## Response `201`

Response

- StartCampaignResponse, nullable — Basic response information
  - `campaign` CampaignResponse
    - `channel_template` CampaignChannelTemplate
      - `custom` object
      - `id` string
      - `members` string[]
      - `members_template` CampaignChannelMember[]
        - `channel_role` string
        - `custom` object
        - `user_id` string, required
      - `team` string
      - `type` string, required
    - `create_channels` boolean, required
    - `created_at` string, date-time, required
    - `description` string, required
    - `id` string, required
    - `message_template` CampaignMessageTemplate
      - `attachments` Attachment[]
        - `actions` Action[]
          - `name` string, required
          - `style` string
          - `text` string, required
          - `type` string, required
          - `value` string
        - `asset_url` string
        - `author_icon` string
        - `author_link` string
        - `author_name` string
        - `color` string
        - `custom` object, required
        - `fallback` string
        - `fields` Field[]
          - `short` boolean, required
          - `title` string, required
          - `value` string, required
        - `footer` string
        - `footer_icon` string
        - `giphy` Images
          - `fixed_height` ImageData, required
            - `frames` string, required
            - `height` string, required
            - `size` string, required
            - `url` string, required
            - `width` string, required
          - `fixed_height_downsampled` ImageData, required
            - `frames` string, required
            - `height` string, required
            - `size` string, required
            - `url` string, required
            - `width` string, required
          - `fixed_height_still` ImageData, required
            - `frames` string, required
            - `height` string, required
            - `size` string, required
            - `url` string, required
            - `width` string, required
          - `fixed_width` ImageData, required
            - `frames` string, required
            - `height` string, required
            - `size` string, required
            - `url` string, required
            - `width` string, required
          - `fixed_width_downsampled` ImageData, required
            - `frames` string, required
            - `height` string, required
            - `size` string, required
            - `url` string, required
            - `width` string, required
          - `fixed_width_still` ImageData, required
            - `frames` string, required
            - `height` string, required
            - `size` string, required
            - `url` string, required
            - `width` string, required
          - `original` ImageData, required
            - `frames` string, required
            - `height` string, required
            - `size` string, required
            - `url` string, required
            - `width` string, required
        - `image_url` string
        - `og_scrape_url` string
        - `original_height` integer
        - `original_width` integer
        - `pretext` string
        - `text` string
        - `thumb_url` string
        - `title` string
        - `title_link` string
        - `type` string — Attachment type (e.g. image, video, url)
      - `custom` object
      - `poll_id` string
      - `searchable` boolean
      - `text` string, required
    - `name` string, required
    - `scheduled_for` string, date-time
    - `segment_ids` string[], required
    - `segments` Segment[], required
      - `all_sender_channels` boolean, required
      - `all_users` boolean, required
      - `created_at` string, date-time, required
      - `deleted_at` string, date-time
      - `description` string
      - `filter` object
      - `id` string, required
      - `name` string, required
      - `size` integer, required
      - `task_id` string
      - `type` string, required
      - `updated_at` string, date-time, required
    - `sender` 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
    - `sender_id` string, required
    - `sender_mode` string, required
    - `sender_visibility` string, required
    - `show_channels` boolean, required
    - `skip_push` boolean, required
    - `skip_webhook` boolean, required
    - `stats` CampaignStatsResponse, required
      - `progress` number, float, required
      - `stats_channels_created` integer, required
      - `stats_completed_at` string, date-time, required
      - `stats_messages_sent` integer, required
      - `stats_started_at` string, date-time, required
      - `stats_users_read` integer, required
      - `stats_users_sent` integer, required
    - `status` string, required
    - `stop_at` string, date-time
    - `updated_at` string, date-time, required
    - `user_ids` string[], required
    - `users` UserResponse[], required
      - `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
  - `duration` string, required — Duration of the request in milliseconds
  - `users` PagerResponse
    - `next` string
    - `prev` string

## 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/509a44ead023/schema)
