---
title: "Add Linear Ancillary"
method: POST
path: "/v1/ancillaries/linear"
tags: ["ancillaries"]
---

# Add Linear Ancillary

`POST /v1/ancillaries/linear`

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

This endpoint adds a single feeder, feeder cluster, route or access ladder
to the library, defined by its geometry: a single feeder by its diameter
and weight per metre, a cluster by its single feeder and arrangement, a
route by its kind (rungs only, cable tray or ladder) and an access ladder by
its type, both with their dimensions and member sections. The geometry
fills in the width, depth and weight.

## Request body

- LinearAncillaryCreateInput
  - `type` 'single_feeder' | 'feeder_cluster' | 'route' | 'ladder', required
  - `name` string, required
  - `geometry` union, required
    - SingleFeederGeometry
      - `kind` 'single_feeder'
      - `diameterMm` number, required
      - `weightKgPerM` number, required
      - `customForceCoefficient` number, nullable
    - FeederClusterGeometry: A bundle of one single feeder from the library, defined with the ancillary groups.
      - `kind` 'feeder_cluster'
      - `feederId` integer, required
      - `gapMm` number
      - `arrangement` union, required
        - RectangularArrangement
          - `shape` 'rectangular'
          - `rows` integer, required
          - `cols` integer, required
          - `cells` array[], required
            - unknown[]
              - …
        - CircularArrangement
          - `shape` 'circular'
          - `count` integer, required
      - `customForceCoefficient` number, nullable
    - FeederLayoutGeometry: A feeder group: a feeder cluster put together from single feeders and other clusters in the library, each placed across the group's section.
      - `kind` 'feeder_layout'
      - `members` ClusterMember[], required
        - `itemId` integer, required
        - `fromLeftMm` number
        - `fromFloorMm` number
        - `clampWeightKgPerM` number
      - `customForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
    - CableTrayGeometry: A route kind: the empty tray. What it holds is placed on each site.
      - `kind` 'cable_tray'
      - `trayWidthMm` number, required
      - `trayDepthMm` number
      - `trayWeightKgPerM` number
      - `solidityRatio` number
      - `sideSolidityRatio` number
      - `customForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
    - RungsOnlyGeometry: A route kind: rungs on equally spaced brackets, the feeders clamped to them.
      - `kind` 'rungs_only'
      - `rungLengthMm` number, required
      - `rung` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rungSpacingMm` number, required
      - `rungForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `customWeightKgPerM` number, nullable
    - CableLadderGeometry: A route kind: a ladder the feeders run on, its stiles outside the rungs.
      - `kind` 'cable_ladder'
      - `rungLengthMm` number, required
      - `rungSpacingMm` number, required
      - `stile` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rung` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `stileForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `rungForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `customWeightKgPerM` number, nullable
    - LadderGeometryInput: An access ladder: stiles outside the rungs, or rungs alone fixed to the structure, with an optional cage and fall arrest.
      - `kind` 'ladder'
      - `ladderType` 'standard' | 'rungs_only' | 'cage', required
      - `rungLengthMm` number, required
      - `stile` union
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rung` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rungSpacingMm` number, required
      - `stileForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `rungForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `cage` LadderCage: Each hoop leaves the outside of a stile, runs straight out to the cage width (diameter_mm), rounds the back in a semicircle and returns to the other stile. depth_mm runs from the rungs to the back of the cage, at least half the width.
        - `diameterMm` number, required
        - `depthMm` number, required
        - `hoopSpacingMm` number, required
        - `hoopWidthMm` number, required
        - `hoopThicknessMm` number, required
        - `verticalBarCount` integer, required
        - `verticalBarWidthMm` number, required
        - `verticalBarThicknessMm` number, required
      - `fallArrest` LadderFallArrest
        - `section` union, required
          - WireRopeSection
            - `shape` 'wire_rope'
            - `diameterMm` number, required
          - ChannelSection: A fall arrest rail: its web lies against the rungs, its flanges point at the climber.
            - `shape` 'channel'
            - `webMm` number, required
            - `flangeMm` number, required
            - `thicknessMm` number, required
        - `forceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
          - `front` number, nullable
          - `side` number, nullable
      - `customWeightKgPerM` number, nullable

## Response `201`

Successful Response

- LinearAncillaryView
  - `id` integer, required
  - `name` string, required
  - `type` 'single_feeder' | 'feeder_cluster' | 'route' | 'ladder', required
  - `createdBy` string, required
  - `widthMm` number, required
  - `depthMm` number, required
  - `weightKgPerM` number, required
  - `geometry` union, required
    - SingleFeederGeometry
      - `kind` 'single_feeder'
      - `diameterMm` number, required
      - `weightKgPerM` number, required
      - `customForceCoefficient` number, nullable
    - FeederClusterGeometry: A bundle of one single feeder from the library, defined with the ancillary groups.
      - `kind` 'feeder_cluster'
      - `feederId` integer, required
      - `gapMm` number
      - `arrangement` union, required
        - RectangularArrangement
          - `shape` 'rectangular'
          - `rows` integer, required
          - `cols` integer, required
          - `cells` array[], required
            - unknown[]
              - …
        - CircularArrangement
          - `shape` 'circular'
          - `count` integer, required
      - `customForceCoefficient` number, nullable
    - FeederLayoutGeometry: A feeder group: a feeder cluster put together from single feeders and other clusters in the library, each placed across the group's section.
      - `kind` 'feeder_layout'
      - `members` ClusterMember[], required
        - `itemId` integer, required
        - `fromLeftMm` number
        - `fromFloorMm` number
        - `clampWeightKgPerM` number
      - `customForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
    - CableTrayGeometry: A route kind: the empty tray. What it holds is placed on each site.
      - `kind` 'cable_tray'
      - `trayWidthMm` number, required
      - `trayDepthMm` number
      - `trayWeightKgPerM` number
      - `solidityRatio` number
      - `sideSolidityRatio` number
      - `customForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
    - RungsOnlyGeometry: A route kind: rungs on equally spaced brackets, the feeders clamped to them.
      - `kind` 'rungs_only'
      - `rungLengthMm` number, required
      - `rung` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rungSpacingMm` number, required
      - `rungForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `customWeightKgPerM` number, nullable
    - CableLadderGeometry: A route kind: a ladder the feeders run on, its stiles outside the rungs.
      - `kind` 'cable_ladder'
      - `rungLengthMm` number, required
      - `rungSpacingMm` number, required
      - `stile` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rung` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `stileForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `rungForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `customWeightKgPerM` number, nullable
    - LadderGeometryOutput: An access ladder: stiles outside the rungs, or rungs alone fixed to the structure, with an optional cage and fall arrest.
      - `kind` 'ladder'
      - `ladderType` 'standard' | 'rungs_only' | 'cage', required
      - `rungLengthMm` number, required
      - `stile` union
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rung` union, required
        - RoundBarSection
          - `shape` 'round_bar'
          - `diameterMm` number, required
        - FlatBarSection: width_mm faces the front wind, depth_mm the side wind.
          - `shape` 'flat_bar'
          - `widthMm` number, required
          - `depthMm` number, required
        - AngleSection
          - `shape` 'angle'
          - `widthMm` number, required
          - `depthMm` number, required
          - `thicknessMm` number, required
      - `rungSpacingMm` number, required
      - `stileForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `rungForceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
        - `front` number, nullable
        - `side` number, nullable
      - `cage` LadderCage: Each hoop leaves the outside of a stile, runs straight out to the cage width (diameter_mm), rounds the back in a semicircle and returns to the other stile. depth_mm runs from the rungs to the back of the cage, at least half the width.
        - `diameterMm` number, required
        - `depthMm` number, required
        - `hoopSpacingMm` number, required
        - `hoopWidthMm` number, required
        - `hoopThicknessMm` number, required
        - `verticalBarCount` integer, required
        - `verticalBarWidthMm` number, required
        - `verticalBarThicknessMm` number, required
      - `fallArrest` LadderFallArrest
        - `section` union, required
          - WireRopeSection
            - `shape` 'wire_rope'
            - `diameterMm` number, required
          - ChannelSection: A fall arrest rail: its web lies against the rungs, its flanges point at the climber.
            - `shape` 'channel'
            - `webMm` number, required
            - `flangeMm` number, required
            - `thicknessMm` number, required
        - `forceCoefficients` CustomForceCoefficients: Custom force coefficients on a member's width (W, front wind) and depth (D, side wind). Blank ones follow the site's design standard.
          - `front` number, nullable
          - `side` number, nullable
      - `customWeightKgPerM` number, nullable
  - `calculation` LinearAncillaryCalculationResult, required
    - `widthMm` number, required
    - `depthMm` number, required
    - `weightKgPerM` number, required
    - `iceProfile` IceProfile, required: Iced projections and ice volume of one metre of the ancillary, as polynomials of the ice thickness so each analysis evaluates them at its own local thickness. The ice volume is the smallest of the candidates.
      - `frontMm` IcePolynomial, required: c0 + c1·t + c2·t², t being the radial ice thickness in mm.
        - `c0` number
        - `c1` number
        - `c2` number
      - `sideMm` IcePolynomial, required: c0 + c1·t + c2·t², t being the radial ice thickness in mm.
        - `c0` number
        - `c1` number
        - `c2` number
      - `iceVolumeMm3PerM` IcePolynomial[], required
        - `c0` number
        - `c1` number
        - `c2` number
    - `feeders` FeederPoint[]
      - `xMm` number, required
      - `yMm` number, required
      - `diameterMm` number, required
    - `extentWidthMm` number
    - `extentDepthMm` number
    - `pitchMm` number, nullable
    - `rungsPerM` number, nullable
    - `solidityRatio` number, nullable
    - `calculatedWeightKgPerM` number, nullable
    - `drawing` LinearDrawing
      - `widthMm` number, required
      - `heightMm` number, required
      - `shapes` LinearDrawingShape[], required
        - `kind` 'circle' | 'rect' | 'polygon' | 'polyline', required
        - `tone` 'stile' | 'rung' | 'cage' | 'cage_bar' | 'fall_arrest', required
        - `xMm` number, required
        - `yMm` number, required
        - `widthMm` number, required
        - `heightMm` number, required
        - `rotationDeg` number
        - `strokeMm` number, nullable
        - `ringsMm` array[]
          - array[]
            - unknown[]
              - …
      - `dimensions` LinearDrawingDimension[]
        - `side` 'bottom' | 'left' | 'right', required
        - `tier` integer
        - `startXMm` number, required
        - `startYMm` number, required
        - `endXMm` number, required
        - `endYMm` number, required
      - `notes` LinearDrawingNote[]
        - `xMm` number, required
        - `yMm` number, required
        - `text` string, required
    - `frontView` LinearDrawing
      - `widthMm` number, required
      - `heightMm` number, required
      - `shapes` LinearDrawingShape[], required
        - `kind` 'circle' | 'rect' | 'polygon' | 'polyline', required
        - `tone` 'stile' | 'rung' | 'cage' | 'cage_bar' | 'fall_arrest', required
        - `xMm` number, required
        - `yMm` number, required
        - `widthMm` number, required
        - `heightMm` number, required
        - `rotationDeg` number
        - `strokeMm` number, nullable
        - `ringsMm` array[]
          - array[]
            - unknown[]
              - …
      - `dimensions` LinearDrawingDimension[]
        - `side` 'bottom' | 'left' | 'right', required
        - `tier` integer
        - `startXMm` number, required
        - `startYMm` number, required
        - `endXMm` number, required
        - `endYMm` number, required
      - `notes` LinearDrawingNote[]
        - `xMm` number, required
        - `yMm` number, required
        - `text` string, required
  - `usedByIds` integer[], required
  - `isSiteCopy` boolean, required

## Other responses

- `400`: Bad Request
- `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)
