For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Dev Portal
DocsAPI ReferenceLearnCommunityChangelog
DocsAPI ReferenceLearnCommunityChangelog
    • About Our APIs
  • REST
    • Overview
      • Overview
        • Abandoned Carts
        • Carts
        • Channels
        • Checkouts
        • Currencies
        • Customer Segmentation
        • Geography
        • Infrastructure Hosting
        • Inventory
        • Orders
        • Order Transactions
        • Pickup
        • Pickup Methods
        • Pickup Options
        • Pricing
        • Price Lists
        • Promotions
              • POSTCreate Promotion
              • GETGet Promotion
              • PUTUpdate Promotion
              • DELDelete Promotion
        • Promotion Settings
        • Redirects
        • Scripts
        • Settings
        • Shipping
        • Sites
        • Subscribers
        • System Logs
        • Tax
        • Wishlists
      • Payments
  • GraphQL
    • Overview
  • MCP
    • Overview
Dev Portal
LogoLogo
RESTAdminManagementPromotionsPromotions Single

Create Promotion

POST
https://api.bigcommerce.com/stores/:store_hash/v3/promotions
POST
/stores/:store_hash/v3/promotions
$curl -X POST https://api.bigcommerce.com/stores/store_hash/v3/promotions \
> -H "Accept: application/json" \
> -H "X-Auth-Token: <apiKey>" \
> -H "Content-Type: application/json" \
> -d '{
> "name": "Buy Product X Get Free Shipping",
> "rules": [
> {
> "action": {}
> }
> ],
> "redemption_type": "COUPON"
>}'
1{
2 "data": {
3 "id": 1,
4 "redemption_type": "COUPON",
5 "name": "Buy Product X Get Free Shipping",
6 "display_name": "WOW!!! FREE SHIPPING for Product X",
7 "channels": [
8 {
9 "id": 1
10 }
11 ],
12 "customer": {
13 "group_ids": [
14 1,
15 2,
16 3
17 ],
18 "minimum_order_count": 1,
19 "excluded_group_ids": [
20 1,
21 2,
22 3
23 ],
24 "segments": {
25 "id": [
26 "ccec121a-f9bc-4a04-809e-1fe0d8ae7fdd"
27 ]
28 }
29 },
30 "rules": [
31 {
32 "action": {
33 "cart_value": {
34 "discount": {
35 "fixed_amount": "12.95"
36 }
37 }
38 },
39 "apply_once": true,
40 "stop": true,
41 "condition": {
42 "cart": {
43 "items": {
44 "brands": [
45 1,
46 2,
47 3
48 ]
49 },
50 "minimum_spend": "12.95",
51 "minimum_quantity": 1
52 }
53 }
54 }
55 ],
56 "current_uses": 2,
57 "max_uses": 10,
58 "status": "ENABLED",
59 "start_date": "2005-12-30T01:02:03+00:00",
60 "end_date": "2025-12-30T01:02:03+00:00",
61 "stop": false,
62 "can_be_used_with_other_promotions": false,
63 "currency_code": "USD",
64 "notifications": [
65 {
66 "content": "Congratulations! Youʼve received a free %ACTION.FREE_PRODUCT%!",
67 "type": "UPSELL",
68 "locations": [
69 "HOME_PAGE",
70 "PRODUCT_PAGE",
71 "CART_PAGE",
72 "CHECKOUT_PAGE"
73 ]
74 }
75 ],
76 "shipping_address": {
77 "countries": [
78 {
79 "iso2_country_code": "US"
80 }
81 ]
82 },
83 "schedule": {
84 "week_frequency": 2,
85 "week_days": [
86 "Monday"
87 ],
88 "daily_start_time": "01:20:00",
89 "daily_end_time": "23:59:00"
90 },
91 "created_from": "react_ui",
92 "codes": {
93 "id": 1,
94 "code": "TEST-COUPON-CODE",
95 "current_uses": 2,
96 "max_uses": 10,
97 "max_uses_per_customer": 5,
98 "created": "2019-01-20T22:00:00.000Z"
99 },
100 "coupon_overrides_automatic_when_offering_higher_discounts": false,
101 "multiple_codes": {
102 "has_multiple_codes": false
103 },
104 "coupon_type": "BULK"
105 },
106 "meta": {}
107}
Creates a *promotion*. To learn more about how to create a *promotion*, read the [Promotions Overview](/developer/docs/admin/catalog-and-inventory/promotions). For examples grouped by use case, see the [promotions examples](/developer/docs/admin/catalog-and-inventory/promotions/examples/brand). **Note:** The default rate limit for this endpoint is 40 concurrent requests.
Was this page helpful?
Previous

Delete Multiple Promotions

Next

Get Promotion

Built with

Creates a promotion. To learn more about how to create a promotion, read the Promotions Overview. For examples grouped by use case, see the promotions examples.

Note: The default rate limit for this endpoint is 40 concurrent requests.

Authentication

X-Auth-Tokenstring
### OAuth scopes | UI Name | Permission | Parameter | |:--------|:-----------|:----------| | Marketing | modify | `store_v2_marketing` | | Marketing | read-only | `store_v2_marketing_read_only` | ### Authentication header | Header | Argument | Description | |:-------|:---------|:------------| | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see [API Accounts and OAuth Scopes](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). | ### Further reading For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-fundamentals/api-accounts). For more about BigCommerce OAuth scopes, see [API Accounts and OAuth Scopes](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).

Path parameters

store_hashstringRequired
Permanent ID of the BigCommerce store.

Headers

AcceptstringRequiredDefaults to application/json
The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response body.

Request

This endpoint expects an object.
Draft Coupon PromotionobjectRequired

A draft Coupon Promotion to be created. A shopper must manually apply a coupon promotion to their cart.

OR
Draft Automatic PromotionobjectRequired

A draft Automatic Promotion to be created. The store applies automatic promotions to a shopper’s cart once the promotion criteria are satisfied. The shopper cannot manually apply an automatic promotion.

Response

dataobject
metaobject
Empty meta object, which may be used at a later time.

Errors

400
Bad Request Error
403
Forbidden Error
422
Unprocessable Entity Error

OAuth scopes

UI NamePermissionParameter
Marketingmodifystore_v2_marketing
Marketingread-onlystore_v2_marketing_read_only

Authentication header

HeaderArgumentDescription
X-Auth-Tokenaccess_tokenFor more about API accounts that generate access_tokens, see API Accounts and OAuth Scopes.

Further reading

For example requests and more information about authenticating BigCommerce APIs, see Authentication and Example Requests.

For more about BigCommerce OAuth scopes, see API Accounts and OAuth Scopes.

For a list of API status codes, see API Status Codes.

The MIME type of the response body.