Create a personalized offer

Last update: 2023-10-18
  • Created for:
  • Experienced

A personalized offer is a customizable marketing message based on eligibility rules and constraints.

You can create a personalized offer by making a POST request to the Offer Library API.

Accept and Content-Type headers

The following table shows the valid values which comprise the Content-Type field in the request header:

Header name Value
Content-Type application/json

API format

POST /{ENDPOINT_PATH}/offers/{ID}?offer-type=personalized
Parameter Description Example
{ENDPOINT_PATH} The endpoint path for persistence APIs.


curl -X POST '' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
    "name": "Test personalized offer with frequency constraint",
    "status": "draft",
    "representations": [
            "channel": "",
            "placement": "offerPlacement1234",
            "components": [
                    "type": "html",
                    "format": "text/html",
                    "language": [
                    "content": "Hello You qualify for our Discount of 60%"
    "selectionConstraint": {
        "startDate": "2022-07-27T05:00:00.000+00:00",
        "endDate": "2023-07-29T05:00:00.000+00:00",
        "profileConstraintType": "none"
    "rank": {
        "priority": 0
    "cappingConstraint": {},
    "frequencyCappingConstraints": [
            "enabled": false,
            "limit": 1,
            "startDate": "2023-05-15T14:25:49.622+00:00",
            "endDate": "2023-05-25T14:25:49.622+00:00",
            "scope": "global",
            "entity": "offer",
            "repeat": {
                "enabled": false,
                "unit": "month",
                "unitCount": 1


A successful response returns the details of the newly created personalized-offer, including id. You can use the id in later steps to update or delete your personalized offer.

    "etag": 1,
    "createdBy": "{CREATED_BY}",
    "lastModifiedBy": "{MODIFIED_BY}",
    "id": "{ID}",
    "sandboxId": "{SANDBOX_ID}",
    "createdDate": "2023-05-31T15:09:11.771Z",
    "lastModifiedDate": "2023-05-31T15:09:11.771Z",
    "createdByClientId": "{CREATED_CLIENT_ID}",
    "lastModifiedByClientId": "{MODIFIED_CLIENT_ID}"


Offer representations and some offer constraints are currently not supported with the mobile Experience Edge workflows, for example Capping. The Capping field value specifies the number of times an offer can be presented across all users. For more details, see Offer eligibility rules and constraints documentation.

On this page