---
title: "Changes to Create campaign"
method: POST
path: "/campaigns"
---

# Changes to Create campaign

`POST /campaigns`

> Every recorded change to this operation, newest first.
> 576 revisions in range; 3 not diffed.

## Timeline

Changed in 8 of 576 revisions.

- **2026-10-28** `678ca18d68f0`: 2 breaking
- **2026-10-12** `30f95dce0284`: 2 info
- **2026-08-12** `bb4f84a3469c`: 1 breaking
- **2026-07-29** `d274674f0337`: 6 breaking, 2 info
- **2026-04-29** `1d24058ecd33`: 1 info
- **2023-10-20** `168698649960`: 1 breaking
- **2023-06-19** `1c08d6b56ba4`: 2 breaking, 64 info
- **2023-05-16** `f6f95dfaa122`: 2 breaking, 64 warning

## Changes

- **2026-10-28** `678ca18d68f0`: 2 breaking
  - the response property `campaign/sender_mode` became optional for the status `201`
  - the response property `campaign/sender_visibility` became optional for the status `201`
- **2026-10-12** `30f95dce0284`: 2 info
  - added the optional property `cooldown_remaining_ms` to the response with the `400` status
  - added the optional property `cooldown_remaining_ms` to the response with the `429` status
- **2026-08-12** `bb4f84a3469c`: 1 breaking
  - the `campaign/stats/progress` response's property format changed from `float` to `double` for status `201`
- **2026-07-29** `d274674f0337`: 6 breaking, 2 info
  - the response property `campaign/sender/privacy_settings/delivery_receipts/enabled` became optional for the status `201`
  - the response property `campaign/sender/privacy_settings/read_receipts/enabled` became optional for the status `201`
  - the response property `campaign/sender/privacy_settings/typing_indicators/enabled` became optional for the status `201`
  - the response property `campaign/users/items/privacy_settings/delivery_receipts/enabled` became optional for the status `201`
  - the response property `campaign/users/items/privacy_settings/read_receipts/enabled` became optional for the status `201`
  - the response property `campaign/users/items/privacy_settings/typing_indicators/enabled` became optional for the status `201`
  - added the optional property `campaign/sender/devices/items/hardware_id` to the response with the `201` status
  - added the optional property `campaign/users/items/devices/items/hardware_id` to the response with the `201` status
- **2026-04-29** `1d24058ecd33`: 1 info
  - endpoint added
- **2023-10-20** `168698649960`: 1 breaking
  - api path removed without deprecation
- **2023-06-19** `1c08d6b56ba4`: 2 breaking, 64 info
  - the `code` response's property type changed from `string` to `integer` for status `400`
  - the `code` response's property type changed from `string` to `integer` for status `429`
  - removed the `access-key-error` enum value from the `code` response property for the response status `400`
  - removed the `access-key-error` enum value from the `code` response property for the response status `429`
  - removed the `app-suspended` enum value from the `code` response property for the response status `400`
  - removed the `app-suspended` enum value from the `code` response property for the response status `429`
  - removed the `auth-failed` enum value from the `code` response property for the response status `400`
  - removed the `auth-failed` enum value from the `code` response property for the response status `429`
  - removed the `channel-feature-not-supported` enum value from the `code` response property for the response status `400`
  - removed the `channel-feature-not-supported` enum value from the `code` response property for the response status `429`
  - removed the `connection-id-not-found` enum value from the `code` response property for the response status `400`
  - removed the `connection-id-not-found` enum value from the `code` response property for the response status `429`
  - removed the `cool-down` enum value from the `code` response property for the response status `400`
  - removed the `cool-down` enum value from the `code` response property for the response status `429`
  - removed the `custom-command-endpoint-missing` enum value from the `code` response property for the response status `400`
  - removed the `custom-command-endpoint-missing` enum value from the `code` response property for the response status `429`
  - removed the `custom-command-endpoint=call-error` enum value from the `code` response property for the response status `400`
  - removed the `custom-command-endpoint=call-error` enum value from the `code` response property for the response status `429`
  - removed the `duplicate-username` enum value from the `code` response property for the response status `400`
  - removed the `duplicate-username` enum value from the `code` response property for the response status `429`
  - removed the `event-not-supported` enum value from the `code` response property for the response status `400`
  - removed the `event-not-supported` enum value from the `code` response property for the response status `429`
  - removed the `expired-token` enum value from the `code` response property for the response status `400`
  - removed the `expired-token` enum value from the `code` response property for the response status `429`
  - removed the `input-error` enum value from the `code` response property for the response status `400`
  - removed the `input-error` enum value from the `code` response property for the response status `429`
  - removed the `internal-error` enum value from the `code` response property for the response status `400`
  - removed the `internal-error` enum value from the `code` response property for the response status `429`
  - removed the `invalid-token-signature` enum value from the `code` response property for the response status `400`
  - removed the `invalid-token-signature` enum value from the `code` response property for the response status `429`
  - removed the `message-too-long` enum value from the `code` response property for the response status `400`
  - removed the `message-too-long` enum value from the `code` response property for the response status `429`
  - removed the `moderation-failed` enum value from the `code` response property for the response status `400`
  - removed the `moderation-failed` enum value from the `code` response property for the response status `429`
  - removed the `multiple-nesting-level` enum value from the `code` response property for the response status `400`
  - removed the `multiple-nesting-level` enum value from the `code` response property for the response status `429`
  - removed the `not-allowed` enum value from the `code` response property for the response status `400`
  - removed the `not-allowed` enum value from the `code` response property for the response status `429`
  - removed the `not-found` enum value from the `code` response property for the response status `400`
  - removed the `not-found` enum value from the `code` response property for the response status `429`
  - …26 more
- **2023-05-16** `f6f95dfaa122`: 2 breaking, 64 warning
  - the `code` response's property type changed from `integer` to `string` for status `400`
  - the `code` response's property type changed from `integer` to `string` for status `429`
  - added the new `access-key-error` enum value to the `code` response property for the response status `400`
  - added the new `access-key-error` enum value to the `code` response property for the response status `429`
  - added the new `app-suspended` enum value to the `code` response property for the response status `400`
  - added the new `app-suspended` enum value to the `code` response property for the response status `429`
  - added the new `auth-failed` enum value to the `code` response property for the response status `400`
  - added the new `auth-failed` enum value to the `code` response property for the response status `429`
  - added the new `channel-feature-not-supported` enum value to the `code` response property for the response status `400`
  - added the new `channel-feature-not-supported` enum value to the `code` response property for the response status `429`
  - added the new `connection-id-not-found` enum value to the `code` response property for the response status `400`
  - added the new `connection-id-not-found` enum value to the `code` response property for the response status `429`
  - added the new `cool-down` enum value to the `code` response property for the response status `400`
  - added the new `cool-down` enum value to the `code` response property for the response status `429`
  - added the new `custom-command-endpoint-missing` enum value to the `code` response property for the response status `400`
  - added the new `custom-command-endpoint-missing` enum value to the `code` response property for the response status `429`
  - added the new `custom-command-endpoint=call-error` enum value to the `code` response property for the response status `400`
  - added the new `custom-command-endpoint=call-error` enum value to the `code` response property for the response status `429`
  - added the new `duplicate-username` enum value to the `code` response property for the response status `400`
  - added the new `duplicate-username` enum value to the `code` response property for the response status `429`
  - added the new `event-not-supported` enum value to the `code` response property for the response status `400`
  - added the new `event-not-supported` enum value to the `code` response property for the response status `429`
  - added the new `expired-token` enum value to the `code` response property for the response status `400`
  - added the new `expired-token` enum value to the `code` response property for the response status `429`
  - added the new `input-error` enum value to the `code` response property for the response status `400`
  - added the new `input-error` enum value to the `code` response property for the response status `429`
  - added the new `internal-error` enum value to the `code` response property for the response status `400`
  - added the new `internal-error` enum value to the `code` response property for the response status `429`
  - added the new `invalid-token-signature` enum value to the `code` response property for the response status `400`
  - added the new `invalid-token-signature` enum value to the `code` response property for the response status `429`
  - added the new `message-too-long` enum value to the `code` response property for the response status `400`
  - added the new `message-too-long` enum value to the `code` response property for the response status `429`
  - added the new `moderation-failed` enum value to the `code` response property for the response status `400`
  - added the new `moderation-failed` enum value to the `code` response property for the response status `429`
  - added the new `multiple-nesting-level` enum value to the `code` response property for the response status `400`
  - added the new `multiple-nesting-level` enum value to the `code` response property for the response status `429`
  - added the new `not-allowed` enum value to the `code` response property for the response status `400`
  - added the new `not-allowed` enum value to the `code` response property for the response status `429`
  - added the new `not-found` enum value to the `code` response property for the response status `400`
  - added the new `not-found` enum value to the `code` response property for the response status `429`
  - …26 more

---

[Operation](https://skmtc.dev/getstream/apis/stream-api/docs/campaigns/post.md) - [API](https://skmtc.dev/getstream/apis/stream-api.md) - [Page](https://skmtc.dev/getstream/apis/stream-api/changes/campaigns/post)
