---
title: "Create Design Asset"
method: POST
path: "/tenants/{tenant_id}/designs/{design_id}/assets"
tags: ["Design Assets"]
---

# Create Design Asset

`POST /tenants/{tenant_id}/designs/{design_id}/assets`

## Request

- Base URL: `https://api-sandbox.aurorasolar.com`
- URL: `https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/assets`
- Auth: HTTP bearer

Create a new asset for a design.

---

A design can have a number of images or documents such as installation instructions, data sheets or other supporting materials. An associated file can be a pdf, jpg, jpeg, png, gif, or webp file. Any other file formats will be rejected. The maximum size of an individual file is 25 MB. You may upload up to 20 assets per design. New assets will overwrite old assets with the same name and asset type, and new Racking Bill of Materials will always overwrite pre-existing ones, as only 1 is allowed per design.

## Path parameters

- `tenant_id` string, uuid, required
- `design_id` string, uuid, required

## Query parameters

- `asset_type` 'Racking Spec Sheet' | 'Racking Install Manual' | 'Racking Certification' | 'Racking CAD File' | 'Racking Engineering Report' | 'Racking Bill of Materials', required

## Headers

- `Content-Disposition` string, required

## Request body `image/jpeg`

- string, binary

## Response `200`

Asset successfully created.

- object
  - `asset` object
    - `id` string, uuid: Unique ID identifying the asset.
    - `tenant_id` string, uuid: Unique ID identifying the tenant that the asset belongs to.
    - `user_id` string, uuid: Unique ID identifying the Aurora user who created the asset.
    - `project_id` string, uuid: Unique ID identifying the project that the asset belongs to.
    - `design_id` string, uuid: Unique ID identifying the design that the asset belongs to.
    - `url` string: Raw URL of the file (asset). For assets of type `Design DXF` or `CAD Screenshot` the URL does not expire. For all other types, the URL expires after 24 hours and is refreshed on each request.
    - `filename` string, nullable: Base name of the file with extension. Null unless file was uploaded via API.
    - `taken_at` string: The timestamp of when the asset was taken/created, formatted as "YYYY-MM-DD HH:MM:SS UTC"
    - `options` object: Set of key/value pairs containing display metadata regarding the asset. The presence of such a key is determined by the asset_type.
      - `irradiance` boolean: Does the asset contain the irradiance map?
      - `buildings` boolean: Does the DXF file contain buildings?
      - `obstructions` boolean: Does the DXF file contain obstructions?
      - `trees` boolean: Does the DXF file contain trees?
      - `modules` boolean: Does the DXF file contain modules?
      - `microinverters` boolean: Does the DXF file contain microinverters?
      - `inverters` boolean: Does the DXF file contain inverters?
      - `disconnects` boolean: Does the DXF file contain disconnects?
      - `dc_optimizers` boolean: Does the DXF file contain DC optimizers?
      - `bos` boolean: Does the DXF file contain balance of system components?
      - `connections` boolean: Does the DXF file contain connections?
      - `strings` boolean: Does the DXF file contain strings?
      - `aerial_imagery` boolean: Does the asset (CAD screenshot) contain aerial imagery (e.g. Nearmap or custom imagery)?
      - `azimuth` boolean: Does the CAD screenshot contain azimuths?
      - `design_mode` 'site' | 'system': Is the CAD screenshot of the `site` or of the `system`?
      - `lidar` boolean: Does the CAD screenshot contain LiDAR?
      - `measurements` boolean: Does the CAD screenshot contain measurements?
      - `panel_irradiance` boolean: Does the CAD screenshot contain panel shading?
      - `project_location` boolean: Does the CAD screenshot contain project location?
      - `site_irradiance` boolean: Does the CAD screenshot contain irradiance map?
      - `system_items` boolean: Does the CAD screenshot contain system items?
      - `rulers` boolean: Does the CAD screenshot contain rulers?
      - `satellite` boolean: Does the asset (CAD screenshot) contain the satellite imagery (e.g. Google or Bing imagery)?
      - `setbacks` boolean: Does the asset (Design DXF, or CAD Screenshot) contain setbacks?
    - `asset_type` string: The type of the asset. Ex. `"Racking Spec Sheet"`, `"Racking Install Manual"`, `"Racking Certification"`, etc.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/aurorasolar/apis/sync-api.md) - [All operations](https://skmtc.dev/aurorasolar/apis/sync-api/llms.txt) - [OpenAPI document](https://skmtc.dev/aurorasolar/apis/sync-api/revisions/97a7ad8a993a?raw)
