---
title: "Add Discrete Ancillaries"
method: POST
path: "/v1/ancillaries/discrete"
tags: ["ancillaries"]
---

# Add Discrete Ancillaries

`POST /v1/ancillaries/discrete`

## 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/ancillaries/discrete`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/auth`

This endpoint creates new discrete ancillaries and adds them to the ancillary database.
The data for the new ancillaries should be provided in the request body.

Each ancillary type requires exactly the geometry types listed for it by
`GET /v1/ancillaries/discrete/config/v2`, each given once. Geometry values must be
greater than zero, except RADIUS_MM (the corner radius of box-shaped types), which
may be zero. weightKG must be zero or greater, and powerConsumptionKW greater than
zero when powerDetails is given. Invalid input returns 422 naming the ancillary
index and field, and no ancillaries are created.

## Request body

- DiscreteAncillaryCreateInput[]
  - `name` string, required
  - `ancillaryType` 'PANEL' | 'MW_SHROUD' | 'MW_NO_SHROUD' | 'MW_GRID' | 'MW_RADOME' | 'OMNI' | 'GPS' | 'YAGI' | 'DIPOLE' | 'RRU' | 'ODU' | 'FTTA' | 'PTTA' | 'TMA' | 'MHA' | 'OBSTRUCTION_LIGHT' | 'LIGHTNING_ROD' | 'PLATFORM' | 'CUSTOM_BOX' | 'CUSTOM_CYLINDER' | 'HELIX' | 'ICE_SHIELD' | 'COMBINER' | 'GRID' | 'HEADFRAME' | 'SHELTER_EQUIPMENT', required
  - `weightKG` number, required
  - `defaultMountOption` 'TOP' | 'MIDDLE' | 'BOTTOM', required
  - `forceCoefficients` ForceCoefficientsInput
    - `front` number, nullable, required
    - `side` number, nullable, required
    - `rear` number, nullable, required
  - `geometries` DiscreteAncillaryGeometryCreateInput[], required: Exactly the geometry types listed for ancillaryType by GET /v1/ancillaries/discrete/config/v2, each given once.
    - `geometryType` 'HEIGHT_MM' | 'WIDTH_MM' | 'DEPTH_MM' | 'RADIUS_MM' | 'DIAMETER_MM' | 'FRONT_PROJECTED_AREA_MM2' | 'SIDE_PROJECTED_AREA_MM2', required
    - `geometryValue` number, required: Must be greater than zero, except RADIUS_MM (the corner radius of box-shaped types), which may be zero.
  - `powerDetails` DefaultPowerDetailsInput
    - `powerConsumptionKW` number, required

## Response `201`

Successful Response

- DiscreteAncillaryView[]
  - `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.

## Other responses

- `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)
