---
title: Get Promotion by ID
slug: api-documentation/get-promotion-by-id
docTags: 
createdAt: 2026-08-27T17:06:56.421Z
---

{
  "id": "4WMVilAkf6JH9Pbt4IZEx",
  "type": "api-oas-v2",
  "data": {
    "method": "GET",
    "url": "https://api.upstartcommerce.com/v1/promotion/{promotionId}",
    "servers": [
      {
        "url": "https://api.upstartcommerce.com/v1/promotion/{promotionId}"
      }
    ],
    "name": "Get Promotion by ID",
    "description": "<p>This endpoint returns the details associated with a promotion.</p>\n<p>Authorized permissions:</p>\n<ul>\n<li><code>promotion.read</code></li>\n</ul>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "promotionId",
          "type": "string",
          "description": "Unique identifier for the promotion."
        }
      ],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        },
        {
          "kind": "required",
          "name": "x-upstart-tenant",
          "type": "string",
          "description": "Tenant identifier associated with the site this call is for."
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "NoChannelPortalAccess",
          "name": "NoChannelPortalAccess",
          "kind": "optional",
          "type": "http",
          "description": "<p>This authentication is required for clients to interact with any of the management APIs. Similar to 'LoggedIn', it indicates that the user has actually logged into the system, but in this case with a management role.</p>",
          "scheme": "bearer"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "<p>Success-promotion returned.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "Promotion",
            "schema": [
              {
                "name": "data",
                "kind": "required",
                "type": "object",
                "description": "",
                "modelRef": "#/components/schemas/PromotionData",
                "customType": "PromotionData",
                "schema": [
                  {
                    "name": "description",
                    "kind": "optional",
                    "type": "string",
                    "description": ""
                  },
                  {
                    "name": "media",
                    "kind": "optional",
                    "type": "map",
                    "description": "",
                    "example": "",
                    "customType": "map<string, MediaValue>",
                    "schema": []
                  },
                  {
                    "name": "message",
                    "kind": "required",
                    "type": "string",
                    "description": ""
                  },
                  {
                    "name": "name",
                    "kind": "required",
                    "type": "string",
                    "description": ""
                  }
                ]
              },
              {
                "name": "executor",
                "kind": "required",
                "type": "object",
                "description": "This class describes the type of promotion.",
                "modelRef": "#/components/schemas/Executor",
                "customType": "Executor",
                "schema": [
                  {
                    "name": "templateId",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>Unique identifier for a template (e.g. by x get 1 free).</p>"
                  },
                  {
                    "name": "configuration",
                    "kind": "required",
                    "type": "object",
                    "description": "<p>The configuration values for the template (e.g. by one get one free, get 10% off).</p>",
                    "example": "",
                    "schema": []
                  }
                ]
              },
              {
                "name": "id",
                "kind": "optional",
                "type": "string",
                "description": "Unique identifier for a promotion."
              },
              {
                "name": "isActive",
                "kind": "required",
                "type": "boolean",
                "description": "",
                "default": false
              },
              {
                "name": "isArchived",
                "kind": "required",
                "type": "boolean",
                "description": "",
                "default": false
              },
              {
                "name": "priority",
                "kind": "required",
                "type": "integer",
                "description": ""
              },
              {
                "name": "siteIds",
                "kind": "required",
                "type": "array",
                "description": "",
                "example": "",
                "itemType": "string",
                "customType": "string[]",
                "itemExample": "",
                "itemDefault": ""
              },
              {
                "name": "startDate",
                "kind": "required",
                "type": "string<date-time>",
                "description": "",
                "format": "date-time"
              },
              {
                "name": "stopDate",
                "kind": "required",
                "type": "string<date-time>",
                "description": "",
                "format": "date-time"
              },
              {
                "name": "taxCode",
                "kind": "optional",
                "type": "string",
                "description": "Tax code used in cart tax calculations."
              }
            ],
            "modelRef": "#/components/schemas/Promotion",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "400",
        "description": "The request contained information that the server was unable to process. Appropriate errors are provided in the response body.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ValidationErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "detail",
                "kind": "optional",
                "type": "string",
                "description": ""
              }
            ],
            "modelRef": "#/components/schemas/ValidationErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "401",
        "description": "The provided credentials were not valid for this endpoint. It may be that they are expired or that the user's roles are insufficient.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "detail",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "reason",
                "kind": "optional",
                "type": "string",
                "description": ""
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "403",
        "description": "<p>An update to this resource requires the if-match and if-unmodified-since headers to be sent in order to process the request.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "detail",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "reason",
                "kind": "optional",
                "type": "string",
                "description": ""
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "404",
        "description": "The requested resource was not found in the NoChannel system.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "detail",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "reason",
                "kind": "optional",
                "type": "string",
                "description": ""
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "suHEtw7xgVWM0cIEbzwhc",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request GET \\\n     --url https://api.upstartcommerce.com/v1/promotion/{promotionId} \\\n     --header 'accept: application/json' \\\n     --header 'x-upstart-tenant: string'"
        },
        {
          "id": "cnBEs86_22808iXVWnF2c",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\nmyHeaders.append(\"x-upstart-tenant\", \"string\");\n\nvar requestOptions = {\n   method: 'GET',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.upstartcommerce.com/v1/promotion/{promotionId}\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "--f27fLZAibciaJoPBC1n",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.upstartcommerce.com/v1/promotion/{promotionId}\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Get.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\nrequest[\"x-upstart-tenant\"] = \"string\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "5I3HDs1zoKS6O6CVrf-av",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.upstartcommerce.com/v1/promotion/{promotionId}\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json',\n   'x-upstart-tenant': 'string'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "suHEtw7xgVWM0cIEbzwhc"
    },
    "results": {
      "languages": [
        {
          "id": "DYpc-bbdImYXr2pclZNyO",
          "language": "200",
          "code": "// Success-promotion returned.\n{\n  \"data\": {\n    \"description\": \"\",\n    \"media\": \"\",\n    \"message\": \"\",\n    \"name\": \"\"\n  },\n  \"executor\": {\n    \"templateId\": \"\",\n    \"configuration\": {}\n  },\n  \"id\": \"\",\n  \"isActive\": false,\n  \"isArchived\": false,\n  \"priority\": 0,\n  \"siteIds\": [\n    \"\"\n  ],\n  \"startDate\": \"\",\n  \"stopDate\": \"\",\n  \"taxCode\": \"\"\n}"
        },
        {
          "id": "_nRVZ2UwAw2gKPT1Gn9NQ",
          "language": "400",
          "code": "// The request contained information that the server was unable to process. Appropriate errors are provided in the response body.\n{\n  \"name\": \"\",\n  \"code\": \"\",\n  \"detail\": \"\"\n}"
        },
        {
          "id": "HCqreMgMyXkb_0Q_LOm68",
          "language": "401",
          "code": "// The provided credentials were not valid for this endpoint. It may be that they are expired or that the user's roles are insufficient.\n{\n  \"name\": \"\",\n  \"code\": \"\",\n  \"detail\": \"\",\n  \"reason\": \"\"\n}"
        },
        {
          "id": "2PJN-44xFIaKNuwehjJwD",
          "language": "403",
          "code": "// An update to this resource requires the if-match and if-unmodified-since headers to be sent in order to process the request.\n{\n  \"name\": \"\",\n  \"code\": \"\",\n  \"detail\": \"\",\n  \"reason\": \"\"\n}"
        },
        {
          "id": "EwYTaamZbxka7I6hFe7jj",
          "language": "404",
          "code": "// The requested resource was not found in the NoChannel system.\n{\n  \"name\": \"\",\n  \"code\": \"\",\n  \"detail\": \"\",\n  \"reason\": \"\"\n}"
        }
      ],
      "selectedLanguageId": "DYpc-bbdImYXr2pclZNyO"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}