---
title: "Changes to Create a subscription"
method: POST
path: "/v1/projects/{projectID}/subscriptions"
---

# Changes to Create a subscription

`POST /v1/projects/{projectID}/subscriptions`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 26 of 106 revisions.

- **2026-08-20** (v3) `c6c04abdfb6f`: 1 info
- **2026-07-20** (v3) `bae289777c91`: 21 breaking, 65 warning, 14 info
- **2026-07-19** (v3) `e171f744d209`: 1 breaking
- **2026-07-06** (v3) `2e8ab34176ea`: 2 info
- **2026-06-30** (v3) `21fa7ff1d01a`: 3 info
- **2026-06-18** (v3) `274ed78eabfc`: 5 info
- **2026-03-19** (v3) `990a51cff1cc`: 1 warning, 1 info
- **2026-01-23** (v3) `623f857d89a5`: 1 info
- **2025-12-04** (v3) `af9526d13dc8`: 1 info
- **2025-11-27** (v3) `88eaa000293b`: 1 warning, 1 info
- **2025-11-12** (v3) `801a0bbf87fd`: 2 info
- **2025-08-05** (v3) `180e3a788b5b`: 2 info
- **2025-03-17** (v3) `2737e2809da6`: 1 warning, 1 info
- **2024-10-23** (v3) `de665d0e2fc3`: 1 info
- **2024-07-12** (v3) `59336767e79a`: 1 breaking, 1 info
- **2024-06-26** (v3) `93d11babd71a`: 1 info
- **2024-04-04** (v3) `317ec51848e3`: 3 info
- **2024-03-26** (v3) `28d285e4302c`: 8 breaking, 16 warning, 3 info
- **2024-02-08** (v3) `8aa5161aec4c`: 1 warning, 1 info
- **2024-01-30** (v3) `a138f74e9d23`: 2 breaking
- **2023-11-17** (v3) `41d4fca4cab8`: 1 warning, 3 info
- **2023-07-28** (v3) `2fc887538896`: 1 warning
- **2023-06-22** (v3) `5c862889f0b4`: 2 info
- **2023-06-06** (v3) `ab3af5bbf5f0`: 1 breaking, 14 info
- **2023-05-28** (v3) `36284be114fe`: 1 info
- **2023-04-21** (v3) `196c93bf2075`: 1 info

## Changes

- **2026-08-20** (v3) `c6c04abdfb6f`: 1 info
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/allOf[#/components/schemas/datastore.Endpoint]/teams_webhook_url` to the response with the `201` status
- **2026-07-20** (v3) `bae289777c91`: 21 breaking, 65 warning, 14 info
  - the response property `allOf[subschema #2]/data` became nullable for the status `400`
  - the response property `allOf[subschema #2]/data` became nullable for the status `401`
  - the response property `allOf[subschema #2]/data` became nullable for the status `404`
  - the response property `allOf[subschema #2]/data/alert_config` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/deleted_at` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/device_metadata` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/endpoint_metadata` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/filter_config` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/function` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/rate_limit_config` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/retry_config` became nullable for the status `201`
  - the response property `allOf[subschema #2]/data/source_metadata` became nullable for the status `201`
  - the `allOf[subschema #2]/data` response's property type changed from `object` to no type for status `400`
  - the `allOf[subschema #2]/data` response's property type changed from `object` to no type for status `401`
  - the `allOf[subschema #2]/data` response's property type changed from `object` to no type for status `404`
  - the `allOf[subschema #2]/data/device_metadata` response's property type changed from `object` to no type for status `201`
  - the `allOf[subschema #2]/data/endpoint_metadata` response's property type changed from `object` to no type for status `201`
  - the `allOf[subschema #2]/data/filter_config` response's property type changed from `object` to no type for status `201`
  - the `allOf[subschema #2]/data/rate_limit_config` response's property type changed from `object` to no type for status `201`
  - the `allOf[subschema #2]/data/retry_config` response's property type changed from `object` to no type for status `201`
  - the `allOf[subschema #2]/data/source_metadata` response's property type changed from `object` to no type for status `201`
  - removed the optional property `allOf[subschema #2]/data/device_metadata/created_at` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/deleted_at` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/endpoint_id` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/host_name` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/last_seen_at` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/project_id` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/status` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/uid` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/device_metadata/updated_at` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/advanced_signatures` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/authentication` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/cb_state` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/content_type` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/created_at` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/deleted_at` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/description` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/events` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/failure_count` from the response with the `201` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/failure_rate` from the response with the `201` status
  - …60 more
- **2026-07-19** (v3) `e171f744d209`: 1 breaking
  - the `allOf[subschema #2]/data/source_metadata/pub_sub/google/service_account` response's property type changed from `array` to `string`, and format from no format to `byte` for status `201`
- **2026-07-06** (v3) `2e8ab34176ea`: 2 info
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/cb_state` to the response with the `201` status
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/retry_count` to the response with the `201` status
- **2026-06-30** (v3) `21fa7ff1d01a`: 3 info
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/failure_count` to the response with the `201` status
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/period_failure_rate` to the response with the `201` status
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/success_count` to the response with the `201` status
- **2026-06-18** (v3) `274ed78eabfc`: 5 info
  - added the new optional request property `filter_config/allOf[#/components/schemas/models.FilterConfiguration]/filter/allOf[#/components/schemas/models.FS]/path`
  - added the new optional request property `filter_config/allOf[#/components/schemas/models.FilterConfiguration]/filter/allOf[#/components/schemas/models.FS]/query`
  - added the optional property `allOf[subschema #2]/data/filter_config/filter/path` to the response with the `201` status
  - added the optional property `allOf[subschema #2]/data/filter_config/filter/query` to the response with the `201` status
  - added the optional property `allOf[subschema #2]/data/source_metadata/event_type_location` to the response with the `201` status
- **2026-03-19** (v3) `990a51cff1cc`: 1 warning, 1 info
  - added the new `basic_auth` enum value to the `allOf[subschema #2]/data/endpoint_metadata/authentication/type` response property for the response status `201`
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/authentication/basic_auth` to the response with the `201` status
- **2026-01-23** (v3) `623f857d89a5`: 1 info
  - added the optional property `allOf[subschema #2]/data/source_metadata/pub_sub/sqs/endpoint` to the response with the `201` status
- **2025-12-04** (v3) `af9526d13dc8`: 1 info
  - removed the `pending` enum value from the `allOf[subschema #2]/data/endpoint_metadata/status` response property for the response status `201`
- **2025-11-27** (v3) `88eaa000293b`: 1 warning, 1 info
  - added the new `oauth2` enum value to the `allOf[subschema #2]/data/endpoint_metadata/authentication/type` response property for the response status `201`
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/authentication/oauth2` to the response with the `201` status
- **2025-11-12** (v3) `801a0bbf87fd`: 2 info
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/content_type` to the response with the `201` status
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/mtls_client_cert` to the response with the `201` status
- **2025-08-05** (v3) `180e3a788b5b`: 2 info
  - added the new optional request property `delivery_mode`
  - added the optional property `allOf[subschema #2]/data/delivery_mode` to the response with the `201` status
- **2025-03-17** (v3) `2737e2809da6`: 1 warning, 1 info
  - removed the request property `retry_config`
  - added the optional property `allOf[subschema #2]/data/project_id` to the response with the `201` status
- **2024-10-23** (v3) `de665d0e2fc3`: 1 info
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/failure_rate` to the response with the `201` status
- **2024-07-12** (v3) `59336767e79a`: 1 breaking, 1 info
  - removed the success response with the status `200`
  - added the success response with the status `201`
- **2024-06-26** (v3) `93d11babd71a`: 1 info
  - added the optional property `allOf[subschema #2]/data/filter_config/filter/is_flattened` to the response with the `200` status
- **2024-04-04** (v3) `317ec51848e3`: 3 info
  - added the optional property `allOf[subschema #2]/data/source_metadata/body_function` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/source_metadata/header_function` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/source_metadata/pub_sub/amqp/vhost` to the response with the `200` status
- **2024-03-26** (v3) `28d285e4302c`: 8 breaking, 16 warning, 3 info
  - added `#/components/schemas/models.AlertConfiguration` to the `alert_config` request property `allOf` list
  - added `#/components/schemas/models.FilterConfiguration` to the `filter_config` request property `allOf` list
  - added `#/components/schemas/models.RateLimitConfiguration` to the `rate_limit_config` request property `allOf` list
  - added `#/components/schemas/models.RetryConfiguration` to the `retry_config` request property `allOf` list
  - the `alert_config` request property type changed from `object` to no type
  - the `filter_config` request property type changed from `object` to no type
  - the `rate_limit_config` request property type changed from `object` to no type
  - the `retry_config` request property type changed from `object` to no type
  - removed the request property `alert_config/count`
  - removed the request property `alert_config/threshold`
  - removed the request property `filter_config/event_types`
  - removed the request property `filter_config/filter`
  - removed the request property `rate_limit_config/count`
  - removed the request property `rate_limit_config/duration`
  - removed the request property `retry_config/duration`
  - removed the request property `retry_config/interval_seconds`
  - removed the request property `retry_config/retry_count`
  - removed the request property `retry_config/type`
  - removed the optional property `allOf[#/components/schemas/util.ServerResponse]/data` from the response with the `200` status
  - removed the optional property `allOf[#/components/schemas/util.ServerResponse]/data` from the response with the `400` status
  - removed the optional property `allOf[#/components/schemas/util.ServerResponse]/data` from the response with the `401` status
  - removed the optional property `allOf[#/components/schemas/util.ServerResponse]/data` from the response with the `404` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/target_url` from the response with the `200` status
  - removed the optional property `allOf[subschema #2]/data/endpoint_metadata/title` from the response with the `200` status
  - api operation id `CreateSubscription` was added
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/name` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata/url` to the response with the `200` status
- **2024-02-08** (v3) `8aa5161aec4c`: 1 warning, 1 info
  - added the new `amqp` enum value to the `allOf[subschema #2]/data/source_metadata/pub_sub/type` response property for the response status `200`
  - added the optional property `allOf[subschema #2]/data/source_metadata/pub_sub/amqp` to the response with the `200` status
- **2024-01-30** (v3) `a138f74e9d23`: 2 breaking
  - the `allOf[subschema #2]/data/endpoint_metadata/http_timeout` response's property type changed from `string` to `integer` for status `200`
  - the `allOf[subschema #2]/data/endpoint_metadata/rate_limit_duration` response's property type changed from `string` to `integer` for status `200`
- **2023-11-17** (v3) `41d4fca4cab8`: 1 warning, 3 info
  - added the new `kafka` enum value to the `allOf[subschema #2]/data/source_metadata/pub_sub/type` response property for the response status `200`
  - added the new optional request property `function`
  - added the optional property `allOf[subschema #2]/data/function` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/source_metadata/pub_sub/kafka` to the response with the `200` status
- **2023-07-28** (v3) `2fc887538896`: 1 warning
  - removed the optional property `allOf[subschema #2]/data/source_metadata/idempotency_ttl` from the response with the `200` status
- **2023-06-22** (v3) `5c862889f0b4`: 2 info
  - added the optional property `allOf[subschema #2]/data/source_metadata/idempotency_keys` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/source_metadata/idempotency_ttl` to the response with the `200` status
- **2023-06-06** (v3) `ab3af5bbf5f0`: 1 breaking, 14 info
  - the `allOf[subschema #2]/data` response's property type changed from no type to `object` for status `200`
  - added the optional property `allOf[subschema #2]/data/alert_config` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/created_at` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/deleted_at` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/device_metadata` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/endpoint_metadata` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/filter_config` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/name` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/rate_limit_config` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/retry_config` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/source_metadata` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/type` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/uid` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/updated_at` to the response with the `200` status
  - removed `#/components/schemas/public.pagedResponse, subschema #2` from the `allOf[subschema #2]/data` response property `allOf` list for the response status `200`
- **2023-05-28** (v3) `36284be114fe`: 1 info
  - added the optional property `allOf[subschema #2]/data/allOf[subschema #2]/content/items/source_metadata/custom_response` to the response with the `200` status
- **2023-04-21** (v3) `196c93bf2075`: 1 info
  - endpoint added

---

[Operation](https://skmtc.dev/getconvoy/apis/convoy-api-reference/docs/v1/projects/:projectID/subscriptions/post.md) - [API](https://skmtc.dev/getconvoy/apis/convoy-api-reference.md) - [Page](https://skmtc.dev/getconvoy/apis/convoy-api-reference/changes/v1/projects/:projectID/subscriptions/post)
