Retrieve racking bill of materials

This tutorial shows how to retrieve the racking bill of materials using Sync API.

How It Works

On design completion, a racking partner app embedded in Aurora posts racking line items to the bill of materials in Aurora and a file in PDF format with a human-readable bill of materials. You can retrieve both via Sync API.

Getting Started

To complete this tutorial, you will need:

  • your Aurora tenant to be on the Custom or Business plan,
  • your Aurora tenant to have a racking design app enabled,
  • your Aurora tenant to use the API version 2022.09 or higher,
  • your Aurora bearer token,
  • your Aurora tenant_id,
  • URL to deliver Aurora webhooks to.

You or any Administrator for your Aurora tenant can retrieve the token and tenant id from the API Settings page.

Step 1. Subscribe to asset_created webhook event.

Subscribe to asset_created webhook event with the “Racking Bill of Materials” filter, pointing webhooks to your application that will process them. See Webhooks for more details.

Step 2. When a racking partner app posts the bill of materials, Aurora will send you a webhook.

When an Aurora user completes the racking design in the embedded partner app, the app will upload a machine- and human-readable copies of the bill of materials. On human-readable bill of materials upload completion, Aurora will send you a webhook.

//Webhook query string payload

Step 3. Retrieve the machine-readable bill of materials.

On the webhook receipt, use design_id to retrieve the bill of materials JSON by using Retrieve Design Summary API. Note that racking items are listed with the component_type of racking_components.

//GET <{tenant_id}/designs/{design_id}/summary

//HTTP 200 response
  "design": {
    "bill_of_materials": [
                "id": "7b95b2d5-61a1-4543-aed1-19f1c861190f",
                "component_type": "modules",
                "sku": null,
                "name": "DNA-144-MF26-430W",
                "manufacturer_name": "Aptos Solar Technology",
                "quantity": 27
                "id": null,
                "component_type": "racking_components",
                "sku": "ABC-123",
                "name": "Your Racking Manufacturer - Black 84\"",
                "manufacturer_name": "Your Racking Manufacturer",
                "quantity": 54
                "id": null,
                "component_type": "racking_components",
                "sku": "ZYZ-789",
                "name": "Your Racking Manufacturer - Bonded Structural Splice",
                "manufacturer_name": "Your Racking Manufacturer",
                "quantity": 34

Step 4. Retrieve the human-readable bill of materials.

On the webhook receipt, use asset_id to look up the url field using Retrieve Design Asset API. The field points to the URL where the human-readable bill of materials binary file (often in PDF format) is available.

//GET <{tenant_id}/assets/{asset_i}/

//HTTP 200 response
  "asset": {
    "url": "",
    "asset_type": "Racking Bill of Materials"


  • Note that the URL returned by Retrieve Design Assets API expires after 24 hours.
  • Consider using a webhook test site like to verify that your webhook subscription is live.