---
title: "Update an offer"
method: PATCH
path: "/offers/{offerId}"
---

# Update an offer

`PATCH /offers/{offerId}`

## Path parameters

- `offerId` string, required

## Request body

- object
  - `title` string — Offer title, up to 255 characters.
  - `description` string — Offer description, up to 255 characters. Example: Best deal!
  - `tags` string[] — Tags to which a customer has access. A list of unique tags. Example: List [ "sport", "featured event" ]
  - `url` string — Url to your content described in the offer. Up to 200 characters. Example: https://example.com
  - `imageUrl` string — Url to an image for an offer. Up to 255 characters. Example: https://example.com/image.jpg
  - `price` object — Offer price. The offer price may be equal to zero. If it is above zero, it must be higher than the set minimum price (the minimum price differs per offer type and currency). If you decide to update an offer price, the `amount` or `rules` is **required**. You cannot change the currency of an offer.
    - `amount` number, float — Strict number float or int. The price of an offer. Minimum: 0.
    - `rules` object[] — These are special price rules for initial purchase of a **seasonal subscription** that define promotional prices that a publisher wants to offer in certain periods (e.g. before the season begins or once the season is halfway through). <br><br>Price rules are defined with their name, start date, end date, and amount. Allowed values: the same restrictions as for price object apply. <br><br>If you decide to update an offer price and price rules: you can omit past rules and only send current and future rules (`from`, `to`, `name`, and `amount` are **required**.) You can send all rules (including past rules, but you cannot change parameters for past rules).
      - `from` integer — The start date of a special price rule that defines a promotional price. Format: Unix timestamp. Example: 1764590400
      - `to` integer — The end date of a special price rule that defines a promotional price. Format: Unix timestamp Example: 1777636800
      - `name` string — The name of a promotional price period defined by a price rule, e.g. "Early-bird", "Mid-season".
      - `amount` number, float — Strict number float or int. The price for this special rule. The amount may be equal to zero.
    - `currency` string — Only currencies available in Cleeng are allowed.
  - `entitlement` object — The parameter applies to 'pass' and 'vod' offer types. Either `expiresAt` or `duration` is used depending on the offer type.
    - `expiresAt` integer — End date in Unix timestamp. Only available and required for 'pass' offer type. It must be greater (the time must be later) than the current time. It takes precedence over duration.
    - `duration` object — Duration of an entitlement to an offer If you decide to update duration, `amount` or `periodUnit` are required.
      - `amount` integer — Allowed value: integer greater or equal 0. For 'vod' offer type: amount is not limited. For 'pass' offer type: you can create passes for any number of days under 1000: a week, 2 weeks, a month, 3 months, 6 months and a year.
      - `periodUnit` string — hour - a required unit for 'vod'; day, week, month, year - allowed units for 'pass'
  - `event` object — The parameter for 'live' offer type.
    - `timezone` string — A valid timezone from supported [timezones](https://www.php.net/manual/en/timezones.php). Example: Europe/Amsterdam
    - `startsAt` integer — Start time of a live pay-per-view event. It must be smaller than `endsAt`; it can be in the past. Example: 1764590400
    - `endsAt` integer — End time of a live pay-per-view event. Example: 1764597600
  - `freeTrial` object — Used only in 'subscription' offer type.
    - `type` string — Allowed values: `day`, `period`. `period` is only available for weekly and monthly subscriptions.
    - `duration` integer — The length of a free trial. Allowed values: for the type `day`: min value = 1, max value = 365; for the type `period` and weekly subscriptions: 1 - 52 weeks ; for monthly subscriptions: 1-12 months. (See [Free Trials](https://publisher.support.cleeng.com/hc/en-us/articles/360011481813-Free-Trials) for more information).
  - `externalProperties` object — Object with string values. This field can be `null`. If you want to update, you need to provide the whole object, and the whole object is replaced. Example: OrderedMap { "custom-attribute": "custom value" }
    - `property1` string — Example property
  - `appStoreProductIds` object — ID of an offer in a given App store. If you decide to change appStoreProductId for one store, you need to repeat the unchanged ones for other stores.
    - `apple` string
    - `android` string
    - `roku` string
    - `amazon` string
    - `samsung` string
    - `vizio` string
  - `seasonGroupId` string — Available only for seasonal offers. Format: UUID. This is the identifier of a seasonal schedule - a group of seasons, each with its start and end date defined. (For more information on seasonal schedules, see [Seasonal subscriptions](https://publisher.support.cleeng.com/hc/en-us/articles/9565373130268-Seasonal-Subscriptions).) Example: 0bdb7589-762c-40bf-b501-a0f02b59d76d
  - `giftable` boolean — Whether an offer can be purchased as a gift.
  - `geoRestriction` object — `geoRestriction` might be object or null (when disabled). If `geoRestriction` is an object, then `type` or `countries` are required. If you want to update `geoRestriction`, and you only change `type`, `countries` will remain unchanged (if you only change `countries`, `type` will remain unchanged ).
    - `type` string — Specify the type of geo-restriction. Allowed values: `whitelist` (allowed in) or `blacklist` (blocked in).
    - `countries` string[] — Based on geo-restriction type, set the array of whitelisted/blacklisted country codes. Allowed values: 2-letter country codes (ISO-3166 country code without UK) Example: List [ "NL" ]

## Response `200`

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `422` — Unprocessable Entity

---

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