---
title: Updates an existing tag or creates new one.
slug: api-documentation/updates-an-existing-tag-or-creates-new-one
docTags: 
createdAt: 2026-08-27T16:59:17.576Z
---

{
  "id": "T1oXMVAgOo-6jfDmUQJ2T",
  "type": "api-oas-v2",
  "data": {
    "method": "PUT",
    "url": "https://api.upstartcommerce.com/pim/tags/{id}",
    "servers": [
      {
        "url": "https://api.upstartcommerce.com/pim/tags/{id}"
      }
    ],
    "name": "Updates an existing tag or creates new one.",
    "description": "This endpoint enables administrators to update an existing tag. If it does not exists then create a new one.",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "id",
          "type": "string<uuid>",
          "description": "This is the id that will used",
          "format": "uuid"
        }
      ],
      "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.",
          "minLength": 1
        },
        {
          "kind": "required",
          "name": "x-upstart-site",
          "type": "string",
          "description": "The site identifier.",
          "minLength": 1
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [
        {
          "kind": "required",
          "name": "body",
          "type": "object",
          "description": "",
          "customType": "Tags.json",
          "schema": [],
          "modelRef": "schemas/Tags/Tags.json",
          "isExpanded": true
        }
      ],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "NoChannelPortalAccess",
          "name": "NoChannelPortalAccess",
          "kind": "optional",
          "type": "http",
          "description": "<p>(DEPRECATED) 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"
        },
        {
          "id": "ApiKeyAccess",
          "name": "X-Upstart-Api-Key",
          "kind": "optional",
          "type": "apiKey",
          "description": "Api key based authorization.",
          "in": "header"
        },
        {
          "id": "SessionIdAccess",
          "name": "X-Upstart-Session-Id",
          "kind": "optional",
          "type": "apiKey",
          "description": "<p>Session based authorization. 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>",
          "in": "header"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Tag is successfully updated.",
        "jsonExample": "",
        "isExpanded": true,
        "headers": [
          {
            "kind": "optional",
            "name": "Allow",
            "description": ""
          },
          {
            "kind": "optional",
            "name": "ETag",
            "description": ""
          },
          {
            "kind": "optional",
            "name": "Cache-Control",
            "description": ""
          },
          {
            "kind": "optional",
            "name": "Content-Type",
            "description": ""
          }
        ],
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "schema": [],
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "201",
        "description": "New tag is successfully created.",
        "jsonExample": "",
        "isExpanded": true,
        "headers": [
          {
            "kind": "optional",
            "name": "Allow",
            "description": ""
          },
          {
            "kind": "optional",
            "name": "ETag",
            "description": ""
          },
          {
            "kind": "optional",
            "name": "Cache-Control",
            "description": ""
          },
          {
            "kind": "optional",
            "name": "Content-Type",
            "description": ""
          }
        ],
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "schema": [
              {
                "name": "id",
                "kind": "optional",
                "type": "string<uuid>",
                "description": "",
                "format": "uuid"
              }
            ],
            "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.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ValidationErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "401",
        "description": "The provided credentials were not valid for this endpoint.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "403",
        "description": "User's roles are insufficient for this endpoint.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "405",
        "description": "This is to indicate that the server has received a request with an HTTP method that is not supported for the requested resource.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "406",
        "description": "This is to indicate that the resource requested by the client cannot be provided in a format that is acceptable according to the Accept headers sent in the request.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "409",
        "description": "This is to indicate a conflict between the current state of a resource and the request made by the client. It indicates that the server cannot complete the request due to a conflict with the current state of the resource.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "412",
        "description": "This is to indicate that a client request is not processed because one or more preconditions given in the request header fields failed to be met.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "415",
        "description": "This is to indicate that the server cannot process the request because the media type of the request entity is not supported or not recognized by the server.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "default",
        "description": "This is the default internal server error. System was not able to process this request.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ErrorResponse.json",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "NcB3g26tC839RD8g-gySv",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request PUT \\\n     --url https://api.upstartcommerce.com/pim/tags/{id} \\\n     --header 'accept: application/json' \\\n     --header 'x-upstart-tenant: string' \\\n     --header 'x-upstart-site: string'"
        },
        {
          "id": "KgredtSfneWi90vO1yiWj",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"x-upstart-tenant\", \"string\");\nmyHeaders.append(\"x-upstart-site\", \"string\");\n\nvar requestOptions = {\n   method: 'PUT',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.upstartcommerce.com/pim/tags/{id}\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "-5n1IM1DjEy5cFstpnRMo",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.upstartcommerce.com/pim/tags/{id}\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Put.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"x-upstart-tenant\"] = \"string\"\nrequest[\"x-upstart-site\"] = \"string\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "w3TG_BlARVNioHZBkDzq0",
          "language": "python",
          "label": "Python",
          "code": "import requests\n\nurl = \"https://api.upstartcommerce.com/pim/tags/{id}\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'x-upstart-tenant': 'string',\n   'x-upstart-site': 'string'\n}\n\nresponse = requests.request(\"PUT\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "NcB3g26tC839RD8g-gySv"
    },
    "results": {
      "languages": [
        {
          "id": "Pu5tIoRZXTrwGcIn0LhMJ",
          "language": "200",
          "code": "// Tag is successfully updated.\n{}"
        },
        {
          "id": "dDFRrLMPr2jMpldU-jCYv",
          "language": "201",
          "code": "// New tag is successfully created.\n{\n  \"id\": \"\"\n}"
        },
        {
          "id": "jB4u--Aw__sMHVRcBwkq_",
          "language": "400",
          "code": "// The request contained information that the server was unable to process. Appropriate errors are provided in the response body.\n{}"
        },
        {
          "id": "mzKAH0rJ1f47aT1lwe9Pb",
          "language": "401",
          "code": "// The provided credentials were not valid for this endpoint.\n{}"
        },
        {
          "id": "oS_AA7SHCOeBwcjOoR8OP",
          "language": "403",
          "code": "// User's roles are insufficient for this endpoint.\n{}"
        },
        {
          "id": "nefQoVKdtW_IOVAtXVJHj",
          "language": "405",
          "code": "// This is to indicate that the server has received a request with an HTTP method that is not supported for the requested resource.\n{}"
        },
        {
          "id": "e4MUhF6vr4bCdE7JNvtHN",
          "language": "406",
          "code": "// This is to indicate that the resource requested by the client cannot be provided in a format that is acceptable according to the Accept headers sent in the request.\n{}"
        },
        {
          "id": "RORhovv-3syVCjztc2dWI",
          "language": "409",
          "code": "// This is to indicate a conflict between the current state of a resource and the request made by the client. It indicates that the server cannot complete the request due to a conflict with the current state of the resource.\n{}"
        },
        {
          "id": "ygiFLIQwExkSO5UmTfED4",
          "language": "412",
          "code": "// This is to indicate that a client request is not processed because one or more preconditions given in the request header fields failed to be met.\n{}"
        },
        {
          "id": "boA_M-HOsK3zG38AuaGUh",
          "language": "415",
          "code": "// This is to indicate that the server cannot process the request because the media type of the request entity is not supported or not recognized by the server.\n{}"
        },
        {
          "id": "KtPB7wJhT5_z3UzcD4WbY",
          "language": "default",
          "code": "// This is the default internal server error. System was not able to process this request.\n{}"
        }
      ],
      "selectedLanguageId": "Pu5tIoRZXTrwGcIn0LhMJ"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}