---
title: "Create Mount Design"
method: POST
path: "/v1/product/mount_designs"
tags: ["mount-designs"]
---

# Create Mount Design

`POST /v1/product/mount_designs`

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

## Request body

- MountDesignCreateInput
  - `name` string, required
  - `manufacturer` string, nullable
  - `description` string, nullable
  - `members` MountDesignMemberInput[], required
    - `uuid` string, required
    - `geometry` MountDesignMemberGeometryInput, required
      - `p1` Point3D, required
        - `x` number, required
        - `y` number, required
        - `z` number, required
      - `p2` Point3D, required
        - `x` number, required
        - `y` number, required
        - `z` number, required
      - `arc` MountDesignMemberArcInput: A curved member: the member follows the circle through p1, this point, and p2.
        - `through` Point3D, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `loopThrough` Point3D
          - `x` number, required
          - `y` number, required
          - `z` number, required
    - `properties` MountDesignMemberPropertiesInput, required
      - `crossSection` MountDesignCrossSectionInput, required
        - `id` string, required
        - `combinedCrossSectionParameters` CombinedCrossSectionParameters
          - `connectorSpacingMm` number, required: Spacing between connectors in mm along the member
          - `hasCompositeAction` boolean, required
      - `steelGrade` string, required
      - `memberType` 'Leg1' | 'Diagonal1' | 'Diagonal2' | 'Horizontal1' | 'Horizontal2' | 'Secondary1' | 'Secondary2' | 'Secondary3' | 'Secondary4' | 'Hip1' | 'Hip2' | 'Hip3' | 'Hip4' | 'Plan1' | 'Plan2' | 'Plan3' | 'Plan4' | 'GuyWire' | 'MonopoleLeg' | 'RigidArm' | 'SingleLeg' | 'RooftopBeam' | 'MountMember'
      - `releasesStart` MemberEndReleasesInput
        - `momentY` boolean
        - `momentZ` boolean
        - `torsion` boolean
      - `releasesEnd` MemberEndReleasesInput
        - `momentY` boolean
        - `momentZ` boolean
        - `torsion` boolean
      - `stability` MemberStabilityInput
        - `axisY` MemberAxisStability
          - `buckling` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
          - `lateralTorsional` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
        - `axisZ` MemberAxisStability
          - `buckling` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
          - `lateralTorsional` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
        - `axisV` MemberAxisStability
          - `buckling` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
          - `lateralTorsional` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
        - `restraints` MemberRestraintInput[]
          - `positionAlongMemberMm` number, required
          - `points` MemberRestraintPoint[]
            - `location` 'centroid' | 'y_positive' | 'y_negative' | 'z_positive' | 'z_negative', required: Where on the cross-section a restraint attaches, in the member LCS. Named by local axis rather than flange, so it reads the same for an angle, a tube or a member laid on its side. The extreme fibres are the section's outermost points along each axis; the analysis resolves them per shape.
            - `restrainsY` boolean
            - `restrainsZ` boolean
            - `restrainsV` boolean
        - `bucklingLengthOverrides` MemberBucklingLengthOverride[]
          - `axis` 'y' | 'z' | 'v', required
          - `startMm` number, required
          - `endMm` number, nullable
          - `factor` number, nullable
          - `lengthMm` number, nullable
    - `orientationDeg` number
    - `startNodeUuid` string, nullable
    - `endNodeUuid` string, nullable
  - `nodes` MountDesignNodeInput[], nullable
    - `uuid` string, required
    - `x` number, required
    - `y` number, required
    - `z` number, required
  - `supports` MountDesignSupportInput[], nullable
    - `uuid` string, required
    - `memberUuid` string, required
    - `positionAlongMemberMm` number, required
    - `dofType` 'freestanding' | 'pinned' | 'fixed' | 'custom', required
    - `restraints` SupportRestraintsInput
      - `translation` SupportAxisRestraintsInput, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
      - `rotation` SupportAxisRestraintsInput, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
    - `coordinateSystem` 'global' | 'local'
    - `supportTypeUuid` string, nullable
    - `ballastWeightKg` number
    - `foot` MountDesignSupportFootInput
      - `widthMm` number, required
      - `lengthMm` number, required
      - `heightMm` number, required
      - `orientationDeg` number
  - `supportTypes` MountDesignSupportTypeInput[], nullable
    - `uuid` string, required
    - `name` string, required
    - `restraints` SupportRestraintsInput, required
      - `translation` SupportAxisRestraintsInput, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
      - `rotation` SupportAxisRestraintsInput, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
  - `ancillaries` MountDesignAncillaryInput[], nullable
    - `uuid` string, required
    - `discreteAncillaryId` integer, required
    - `memberUuid` string, required
    - `positionAlongMemberMm` number, required
    - `azimuthDeg` number, required
    - `offsetXMm` number: Offset from the mounting point along the global x axis; does not rotate with azimuth.
    - `offsetYMm` number: Offset from the mounting point along the global y axis; does not rotate with azimuth.
    - `offsetZMm` number: Offset from the mounting point along the global z axis.
    - `shieldingFactor` number
    - `mountBracketWeightKg` number
    - `shouldAnalyse` boolean
    - `tenantId` integer, nullable
    - `status` 'INSTALLED' | 'PLANNED' | 'REMOVED' | 'UNKNOWN' | 'MARKED FOR REMOVAL'

## Response `201`

Successful Response

- MountDesignView
  - `id` integer, required
  - `uuid` string, uuid4, required
  - `name` string, required
  - `manufacturer` string, nullable
  - `description` string, nullable
  - `structureId` integer, nullable
  - `sourceMountDesignUuid` string, nullable
  - `members` MountDesignMemberView[], required
    - `uuid` string, required
    - `memberNumber` integer, required
    - `geometry` MountDesignMemberGeometryView, required
      - `p1` Point3D, required
        - `x` number, required
        - `y` number, required
        - `z` number, required
      - `p2` Point3D, required
        - `x` number, required
        - `y` number, required
        - `z` number, required
      - `arc` MountDesignMemberArcView
        - `through` Point3D, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `loopThrough` Point3D
          - `x` number, required
          - `y` number, required
          - `z` number, required
    - `properties` MountDesignMemberPropertiesView, required
      - `crossSection` MountDesignCrossSectionView, required
        - `id` string, required
        - `combinedCrossSectionParameters` CombinedCrossSectionParameters
          - `connectorSpacingMm` number, required: Spacing between connectors in mm along the member
          - `hasCompositeAction` boolean, required
        - `shape` CrossSectionShapeView
          - `shapeType` string, required
          - `diameterMm` number, nullable
          - `heightMm` number, nullable
          - `widthMm` number, nullable
          - `thicknessMm` number, nullable
          - `webThicknessMm` number, nullable
      - `steelGrade` string, required
      - `memberType` 'Leg1' | 'Diagonal1' | 'Diagonal2' | 'Horizontal1' | 'Horizontal2' | 'Secondary1' | 'Secondary2' | 'Secondary3' | 'Secondary4' | 'Hip1' | 'Hip2' | 'Hip3' | 'Hip4' | 'Plan1' | 'Plan2' | 'Plan3' | 'Plan4' | 'GuyWire' | 'MonopoleLeg' | 'RigidArm' | 'SingleLeg' | 'RooftopBeam' | 'MountMember', required
      - `releasesStart` MemberEndReleasesView
        - `momentY` boolean
        - `momentZ` boolean
        - `torsion` boolean
      - `releasesEnd` MemberEndReleasesView
        - `momentY` boolean
        - `momentZ` boolean
        - `torsion` boolean
      - `stability` MemberStabilityOutput
        - `axisY` MemberAxisStability
          - `buckling` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
          - `lateralTorsional` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
        - `axisZ` MemberAxisStability
          - `buckling` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
          - `lateralTorsional` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
        - `axisV` MemberAxisStability
          - `buckling` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
          - `lateralTorsional` MemberEffectiveLength
            - `factor` number, nullable
            - `lengthMm` number, nullable
        - `restraints` MemberRestraintOutput[]
          - `positionAlongMemberMm` number, required
          - `points` MemberRestraintPoint[]
            - `location` 'centroid' | 'y_positive' | 'y_negative' | 'z_positive' | 'z_negative', required: Where on the cross-section a restraint attaches, in the member LCS. Named by local axis rather than flange, so it reads the same for an angle, a tube or a member laid on its side. The extreme fibres are the section's outermost points along each axis; the analysis resolves them per shape.
            - `restrainsY` boolean
            - `restrainsZ` boolean
            - `restrainsV` boolean
        - `bucklingLengthOverrides` MemberBucklingLengthOverride[]
          - `axis` 'y' | 'z' | 'v', required
          - `startMm` number, required
          - `endMm` number, nullable
          - `factor` number, nullable
          - `lengthMm` number, nullable
    - `orientationDeg` number
    - `startNodeUuid` string, nullable
    - `endNodeUuid` string, nullable
  - `nodes` MountDesignNodeView[]
    - `uuid` string, required
    - `x` number, required
    - `y` number, required
    - `z` number, required
  - `supports` MountDesignSupportView[]
    - `uuid` string, required
    - `memberUuid` string, required
    - `positionAlongMemberMm` number, required
    - `dofType` 'freestanding' | 'pinned' | 'fixed' | 'custom', required
    - `restraints` SupportRestraintsView
      - `translation` SupportAxisRestraintsView, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
      - `rotation` SupportAxisRestraintsView, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
    - `coordinateSystem` 'global' | 'local'
    - `supportTypeUuid` string, nullable
    - `ballastWeightKg` number, required
    - `foot` MountDesignSupportFootView
      - `widthMm` number, required
      - `lengthMm` number, required
      - `heightMm` number, required
      - `orientationDeg` number, required
    - `x` number, required
    - `y` number, required
    - `z` number, required
  - `supportTypes` MountDesignSupportTypeView[]
    - `uuid` string, required
    - `name` string, required
    - `restraints` SupportRestraintsView, required
      - `translation` SupportAxisRestraintsView, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
      - `rotation` SupportAxisRestraintsView, required
        - `x` boolean, required
        - `y` boolean, required
        - `z` boolean, required
  - `ancillaries` MountDesignAncillaryView[]
    - `uuid` string, required
    - `discreteAncillaryId` integer, required
    - `memberUuid` string, required
    - `positionAlongMemberMm` number, required
    - `azimuthDeg` number, required
    - `offsetXMm` number, required: Offset from the mounting point along the global x axis; does not rotate with azimuth.
    - `offsetYMm` number, required: Offset from the mounting point along the global y axis; does not rotate with azimuth.
    - `offsetZMm` number, required: Offset from the mounting point along the global z axis.
    - `shieldingFactor` number, required
    - `mountBracketWeightKg` number, required
    - `shouldAnalyse` boolean, required
    - `tenantId` integer, nullable
    - `status` 'INSTALLED' | 'PLANNED' | 'REMOVED' | 'UNKNOWN' | 'MARKED FOR REMOVAL'
    - `createdAtUtc` string, date-time, required
  - `tags` MountDesignTagView[]
    - `value` string, required
    - `color` string, required

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