commercetools Subscriptions API
The Subscriptions API from commercetools — 2 operation(s) for subscriptions.
The Subscriptions API from commercetools — 2 operation(s) for subscriptions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/commercetools-subscriptions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: commercetools HTTP Subscriptions API
description: The commercetools HTTP API is the core REST interface for programmatic access to all data and functionality within a Composable Commerce project.
version: '1.0'
contact:
name: commercetools Support
url: https://support.commercetools.com
termsOfService: https://commercetools.com/terms-conditions
servers:
- url: https://api.{region}.commercetools.com
description: Production Server
variables:
region:
default: us-central1.gcp
enum:
- us-central1.gcp
- us-east-2.aws
- europe-west1.gcp
- eu-central-1.aws
- australia-southeast1.gcp
description: The deployment region for the commercetools API.
security:
- bearerAuth: []
tags:
- name: Subscriptions
paths:
/{projectKey}/subscriptions:
get:
operationId: listSubscriptions
summary: List subscriptions
description: Returns a paginated list of all subscriptions configured in the project. Subscriptions define destinations for change notifications and message delivery to external services such as SQS, SNS, Google Pub/Sub, or Azure Service Bus.
tags:
- Subscriptions
parameters:
- $ref: '#/components/parameters/projectKey'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/where'
responses:
'200':
description: A paged list of subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionPagedQueryResponse'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createSubscription
summary: Create a subscription
description: Creates a new subscription that routes messages and change notifications to an external destination. Supported destinations include AWS SQS, SNS, EventBridge, Azure Service Bus, Event Grid, Google Pub/Sub, and Confluent Cloud. A maximum of 50 subscriptions per project is allowed.
tags:
- Subscriptions
parameters:
- $ref: '#/components/parameters/projectKey'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionDraft'
responses:
'201':
description: The created subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
'400':
$ref: '#/components/responses/BadRequest'
/{projectKey}/subscriptions/{id}:
get:
operationId: getSubscriptionById
summary: Get a subscription by ID
description: Retrieves a single subscription by its system-generated ID, including its destination configuration, message type filters, change filters, and delivery format settings.
tags:
- Subscriptions
parameters:
- $ref: '#/components/parameters/projectKey'
- $ref: '#/components/parameters/id'
responses:
'200':
description: The requested subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: updateSubscriptionById
summary: Update a subscription by ID
description: Applies update actions to the subscription with the given ID. Supported actions include changing the destination, setting message types, setting changes, and changing the format.
tags:
- Subscriptions
parameters:
- $ref: '#/components/parameters/projectKey'
- $ref: '#/components/parameters/id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionUpdate'
responses:
'200':
description: The updated subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
delete:
operationId: deleteSubscriptionById
summary: Delete a subscription by ID
description: Permanently deletes the subscription with the given ID. The current version must be provided. After deletion, no further messages are routed to the associated destination.
tags:
- Subscriptions
parameters:
- $ref: '#/components/parameters/projectKey'
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/version'
responses:
'200':
description: The deleted subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
components:
responses:
BadRequest:
description: The request was malformed or contained invalid parameters.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: integer
message:
type: string
errors:
type: array
items:
type: object
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: integer
message:
type: string
Unauthorized:
description: The request lacked valid authentication credentials.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: integer
message:
type: string
schemas:
Subscription:
type: object
description: A subscription routing change notifications and messages to an external message queue destination.
required:
- id
- version
- destination
properties:
id:
type: string
description: System-generated unique identifier.
version:
type: integer
description: Current version for optimistic concurrency control.
key:
type: string
description: User-defined unique identifier (2-256 characters).
destination:
type: object
description: The external message queue destination configuration.
messages:
type: array
items:
type: object
description: Message type subscriptions filtering which message types to deliver.
changes:
type: array
items:
type: object
description: Change subscriptions filtering which resource change events to deliver.
format:
type: object
description: Delivery format configuration (Platform or CloudEvents).
status:
type: string
enum:
- Healthy
- ConfigurationError
- ConfigurationErrorDeliveryStopped
- TemporaryError
description: Current health status of the subscription.
createdAt:
type: string
format: date-time
description: ISO 8601 timestamp when the subscription was created.
lastModifiedAt:
type: string
format: date-time
description: ISO 8601 timestamp when the subscription was last modified.
SubscriptionUpdate:
type: object
description: Request body for updating a subscription.
required:
- version
- actions
properties:
version:
type: integer
description: Current version for optimistic concurrency control.
actions:
type: array
items:
type: object
description: List of update actions to apply to the subscription.
SubscriptionDraft:
type: object
description: Request body for creating a new subscription.
required:
- destination
properties:
key:
type: string
description: User-defined unique key (2-256 characters).
destination:
type: object
description: The message queue destination configuration.
messages:
type: array
items:
type: object
description: Message type filters for this subscription.
changes:
type: array
items:
type: object
description: Change type filters for this subscription.
format:
type: object
description: Delivery format configuration.
SubscriptionPagedQueryResponse:
type: object
description: Paginated response containing a list of subscriptions.
required:
- limit
- offset
- count
- total
- results
properties:
limit:
type: integer
offset:
type: integer
count:
type: integer
total:
type: integer
results:
type: array
items:
$ref: '#/components/schemas/Subscription'
parameters:
limit:
name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 500
default: 20
description: Maximum number of results to return. Defaults to 20, maximum 500.
where:
name: where
in: query
required: false
schema:
type: string
description: Query predicate string for filtering results. Uses commercetools predicate syntax (e.g., 'customerEmail = "user@example.com"').
projectKey:
name: projectKey
in: path
required: true
schema:
type: string
description: The unique key identifying the commercetools project.
version:
name: version
in: query
required: true
schema:
type: integer
minimum: 1
description: Current version of the resource for optimistic concurrency control.
id:
name: id
in: path
required: true
schema:
type: string
description: The system-generated unique identifier of the resource.
offset:
name: offset
in: query
required: false
schema:
type: integer
minimum: 0
maximum: 10000
default: 0
description: Number of results to skip for pagination. Maximum 10000.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: OAuth 2.0 Bearer token obtained from the commercetools authentication service at https://auth.{region}.commercetools.com/oauth/token using client credentials flow.
externalDocs:
description: commercetools HTTP API Documentation
url: https://docs.commercetools.com/api