---
title: "Update promotions"
method: PATCH
path: "/ad_accounts/{ad_account_id}/promotions"
tags: ["promotions"]
---

# Update promotions

`PATCH /ad_accounts/{ad_account_id}/promotions`

Update multiple promotions.

## Path parameters

- `ad_account_id` string, required

## Request body

- PromotionBatchUpdate[] — List of promotion data updates keyed on promotion id.
  - `discount_status` 'OTHER' | 'ACTIVE' | 'PAUSED' | 'SCHEDULED' | 'EXPIRED' — Discount status based on the current time and start and end time of discount
  - `end_time` integer — Promotion end time. Unix timestamp in seconds. Independent of campaign end time.
  - `external_id` string — Platform-specific ID for this promotion. Will be null for promotions first created within Pinterest.
  - `id` string, required — Promotion ID
  - `platform_type` string — The source integration platform used when creating the promotion. Currently supported values are 'DEFAULT' and 'SHOPIFY'.
  - `promotion_code` string — Code that can be used to redeem a promotion.
  - `promotion_custom_id` string — An optional field for user defined promotion ID for this promotion. Will copy from Pinterest system generated ID if user did not provide one.
  - `promotion_title` string — Internal name for the promotion.
  - `promotion_type` 'VARIABLE' | 'SITEWIDE' | 'CHECKOUT' | 'SAVE_X_ON_Y' | 'BUY_X_GET_Y' | 'SPEND_X_SAVE_Y' | 'FREE_SHIPPING' | 'FREE_SHIPPING_MINIMUM' | 'FREE_SHIPPING_WITH_DISCOUNT' | 'SITEWIDE_IN_STORES' | 'EXTRA_PERCENT_OFF' | 'GIFT_WITH_PURCHASE' | 'GIFT_WITH_PURCHASE_MINIMUM' | 'FIXED' | 'PERCENT_OFF_CLEARANCE' | 'X_OFF_Y' | 'GIFT_WITH_FIRST_PURCHASE' | 'BUY_X_GET_ONE_FREE' | 'CASH_BACK' | 'POINTS_ON_ALL_PURCHASES' | 'BONUS' | 'POINTS_WITH_PURCHASE' | 'CUSTOM' — Determines the displayed promotion text along with what parameters (if any) are needed to complete the template.
  - `start_time` integer — Promotion start time. Unix timestamp in seconds. Independent of campaign start time.
  - `template_values` PromotionTemplateValue[] — List of values to be inserted in the promotion type-specific template.
    - `amount` number — Numeric value.
    - `currency_code` 'UNK' | 'USD' | 'GBP' | 'CAD' | 'EUR' | 'AUD' | 'NZD' | 'SEK' | 'ILS' | 'CHF' | 'HKD' | 'JPY' | 'SGD' | 'KRW' | 'NOK' | 'DKK' | 'PLN' | 'RON' | 'HUF' | 'CZK' | 'BRL' | 'MXN' | 'ARS' | 'CLP' | 'COP' | 'INR' | 'TRY' — Currency Codes from ISO 4217
    - `custom_text` string — Custom text.
    - `percent` number — Percent value.

## Response `200`

The request has succeeded.

- PromotionsResponse
  - `promotions` PromotionArrayElement[]
    - `data` Promotion
      - `ad_account_id` string, required — The Ad Account ID that this promotion belongs to.
      - `discount_status` 'OTHER' | 'ACTIVE' | 'PAUSED' | 'SCHEDULED' | 'EXPIRED' — Discount status based on the current time and start and end time of discount
      - `end_time` integer — Promotion end time. Unix timestamp in seconds. Independent of campaign end time.
      - `external_id` string — Platform-specific ID for this promotion. Will be null for promotions first created within Pinterest.
      - `id` string, required — Promotion ID
      - `platform_type` string — The source integration platform used when creating the promotion. Currently supported values are 'DEFAULT' and 'SHOPIFY'.
      - `promotion_code` string — Code that can be used to redeem a promotion.
      - `promotion_custom_id` string — An optional field for user defined promotion ID for this promotion. Will copy from Pinterest system generated ID if user did not provide one.
      - `promotion_title` string, required — Internal name for the promotion.
      - `promotion_type` 'VARIABLE' | 'SITEWIDE' | 'CHECKOUT' | 'SAVE_X_ON_Y' | 'BUY_X_GET_Y' | 'SPEND_X_SAVE_Y' | 'FREE_SHIPPING' | 'FREE_SHIPPING_MINIMUM' | 'FREE_SHIPPING_WITH_DISCOUNT' | 'SITEWIDE_IN_STORES' | 'EXTRA_PERCENT_OFF' | 'GIFT_WITH_PURCHASE' | 'GIFT_WITH_PURCHASE_MINIMUM' | 'FIXED' | 'PERCENT_OFF_CLEARANCE' | 'X_OFF_Y' | 'GIFT_WITH_FIRST_PURCHASE' | 'BUY_X_GET_ONE_FREE' | 'CASH_BACK' | 'POINTS_ON_ALL_PURCHASES' | 'BONUS' | 'POINTS_WITH_PURCHASE' | 'CUSTOM', required — Determines the displayed promotion text along with what parameters (if any) are needed to complete the template.
      - `start_time` integer — Promotion start time. Unix timestamp in seconds. Independent of campaign start time.
      - `status` 'ACTIVE' | 'PAUSED' | 'ARCHIVED' | 'DRAFT' | 'DELETED_DRAFT' — Entity status
      - `template_values` PromotionTemplateValue[] — List of values to be inserted in the promotion type-specific template.
        - `amount` number — Numeric value.
        - `currency_code` 'UNK' | 'USD' | 'GBP' | 'CAD' | 'EUR' | 'AUD' | 'NZD' | 'SEK' | 'ILS' | 'CHF' | 'HKD' | 'JPY' | 'SGD' | 'KRW' | 'NOK' | 'DKK' | 'PLN' | 'RON' | 'HUF' | 'CZK' | 'BRL' | 'MXN' | 'ARS' | 'CLP' | 'COP' | 'INR' | 'TRY' — Currency Codes from ISO 4217
        - `custom_text` string — Custom text.
        - `percent` number — Percent value.
    - `exception` Exception
      - `code` integer
      - `message` string, required

## Other responses

- `400` — The request could not be understood by the server due to unexpected data.
- `401` — Authentication is required and has either failed or not been provided.
- `403` — The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.
- `404` — The requested resource could not be found on this server.
- `429` — The user has sent too many requests in a given amount of time and is being rate limited.
- `default` — An unexpected error response.

---

[API](https://skmtc.net/pinterest/apis/pinterest-rest-api.md) · [All operations](https://skmtc.net/pinterest/apis/pinterest-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pinterest/pinterest-rest-api/versions/b698c180678a/schema)
