---
title: Rebuild the compacted reference topic for product lines
slug: api-documentation/rebuild-the-compacted-reference-topic-for-product-lines
docTags: 
createdAt: 2026-08-27T17:01:17.334Z
---

{
  "id": "ToFSMH7goUrQZd4Pdc4M-",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "https://api.upstartcommerce.com/pim/internal/product-lines/reference-topic/bootstrap",
    "servers": [
      {
        "url": "https://api.upstartcommerce.com/pim/internal/product-lines/reference-topic/bootstrap"
      }
    ],
    "name": "Rebuild the compacted reference topic for product lines",
    "description": "<p>Rebuilds the compacted Avro reference topic for product lines of the calling tenant, republishing every\nlive product line — with its collections nested, since collections have no topic of their own. Does not\ntouch the legacy JSON port topic.</p>\n<p>The run happens in the BACKGROUND: this returns 202 as soon as it starts, and the outcome is in the\nservice logs (a DONE or INCOMPLETE summary) and on the topic itself. A run walks every live\nproduct line of the tenant and reads each one's collections, and republishes the whole set — so it can\nflood every consumer of the topic. Re-running is safe and idempotent;\na request is refused with 409 while a run for the same tenant and entity type is still in flight.</p>\n<p>Authorized permissions:</p>\n<ul>\n<li><code>pim.product-line.reference.bootstrap</code></li>\n</ul>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [],
      "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": "202",
        "description": "<p>The run was started; watch the logs and the topic for the outcome.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ReferenceTopicBootstrap.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ReferenceTopicBootstrap.json",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "409",
        "description": "<p>A run for this tenant and entity type is already in flight; nothing was started.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ReferenceTopicBootstrap.json",
            "schema": [],
            "modelRef": "RestAPI/GeneralRestResponse/ReferenceTopicBootstrap.json",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "C6BOW5I3Y-kNN3BgYVzNi",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url https://api.upstartcommerce.com/pim/internal/product-lines/reference-topic/bootstrap \\\n     --header 'accept: application/json'"
        },
        {
          "id": "mThtevo9NTQfDXpq5svu0",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.upstartcommerce.com/pim/internal/product-lines/reference-topic/bootstrap\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "lC9Pao8s7SKQqJ4QdfHsS",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.upstartcommerce.com/pim/internal/product-lines/reference-topic/bootstrap\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "3l18H_GczFiJnVlEwKw0A",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.upstartcommerce.com/pim/internal/product-lines/reference-topic/bootstrap\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "C6BOW5I3Y-kNN3BgYVzNi"
    },
    "results": {
      "languages": [
        {
          "id": "wCofsZMUxSnoKZFsSxT8q",
          "language": "202",
          "code": "// The run was started; watch the logs and the topic for the outcome.\n{}"
        },
        {
          "id": "LwJf4RblUMjdMjA8nXdNy",
          "language": "409",
          "code": "// A run for this tenant and entity type is already in flight; nothing was started.\n{}"
        }
      ],
      "selectedLanguageId": "wCofsZMUxSnoKZFsSxT8q"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}