---
title: "Add Discrete Ancillaries By Structure Id"
method: POST
path: "/v1/structures/{structure_id}/discrete_ancillaries"
tags: ["structures"]
---

# Add Discrete Ancillaries By Structure Id

`POST /v1/structures/{structure_id}/discrete_ancillaries`

## Request

- Base URL: `https://api.shapemaker.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.shapemaker.io/v1/structures/{structure_id}/discrete_ancillaries`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/auth`

This endpoint allows you to add discrete ancillaries to a structure. The structure ID should be provided as a path parameter in the URL.
The ancillaries to be added should be provided in the request body.

Each discrete ancillary object should include the ancillary ID, mount option, and mount height.
If the mount option is not provided, the default mount option for the ancillary will be used.
If the mount height is not provided, the height of the tower will be used.

## Path parameters

- `structure_id` string, required

## Request body

- StructureDiscreteAncillaryCreateInput[]
  - `discreteAncillaryId` integer, required
  - `tenantId` integer, nullable
  - `mountHeightM` number, nullable
  - `azimuthDEG` number, nullable
  - `mountOption` 'TOP' | 'MIDDLE' | 'BOTTOM'
  - `shieldingFactor` number, nullable
  - `mountBracketWeightKG` number, nullable
  - `xM` number, nullable
  - `yM` number, nullable
  - `shouldAnalyse` boolean
  - `status` 'INSTALLED' | 'PLANNED' | 'REMOVED' | 'UNKNOWN' | 'MARKED FOR REMOVAL'
  - `shelterId` integer, nullable
  - `shelterXM` number, nullable
  - `shelterYM` number, nullable
  - `shelterZM` number, nullable
  - `shelterAzimuthDEG` number, nullable
  - `shelterIsExterior` boolean

## Response `201`

Successful Response

- StructureDiscreteAncillaryView[]
  - `id` integer, required
  - `structureId` integer, required
  - `discreteAncillaryId` integer, required
  - `tenantId` integer, nullable
  - `mountHeightM` number, required: Height of the mounting point above ground level (in meters).
  - `azimuthDEG` number, required
  - `mountOption` 'TOP' | 'MIDDLE' | 'BOTTOM', required
  - `shieldingFactor` number, required
  - `mountBracketWeightKG` number, required
  - `shouldAnalyse` boolean, required
  - `discreteAncillary` DiscreteAncillaryView, required
    - `id` integer, required
    - `name` string, required
    - `ancillaryType` string, required
    - `weightKG` number, required
    - `defaultMountOption` string, required
    - `geometries` DiscreteAncillaryGeometryView[], required
      - `geometryType` string, required
      - `geometryValue` number, required
    - `organizationId` integer, required
    - `powerDetails` DefaultPowerDetailsView
      - `powerConsumptionKW` number, required
    - `forceCoefficients` ForceCoefficientsView, required
      - `front` number, nullable, required
      - `side` number, nullable, required
      - `rear` number, nullable, required
    - `epa` EpaView
      - `frontM2` number, required
      - `sideM2` number, required
      - `rearM2` number, required
      - `governingM2` number, nullable: The EPA (m²) in the governing wind direction, if available.
  - `xM` number, nullable
  - `yM` number, nullable
  - `status` 'INSTALLED' | 'PLANNED' | 'REMOVED' | 'UNKNOWN' | 'MARKED FOR REMOVAL', required
  - `shelterId` integer, nullable
  - `shelterXM` number, nullable
  - `shelterYM` number, nullable
  - `shelterZM` number, nullable
  - `shelterAzimuthDEG` number, nullable
  - `shelterIsExterior` boolean
  - `isPositionManual` boolean, required

## Other responses

- `400`: Bad Request
- `404`: Not found
- `422`: Validation Error

---

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