---
title: "Rename a shape library, or replace its items."
method: PUT
path: "/shape-libraries/{id}"
tags: ["Shape libraries"]
---

# Rename a shape library, or replace its items.

`PUT /shape-libraries/{id}`

## Request

- Base URL: `https://www.livediagram.app/api`
- URL: `https://www.livediagram.app/api/shape-libraries/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Owner-Id`

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string
  - `items` ShapeLibraryItem[]
    - `elements` Element[], required
      - union
        - union
          - ShapeElement
            - `accentEdge` 'left' | 'top' | 'bottom'
            - `accentEdgeColor` string
            - `action` ElementAction
              - …
            - `actions` ElementAction[]
              - …
            - `agendaCurrent` number
            - `agendaItems` AgendaItem[]
              - …
            - `agendaTimerStartedAt` number
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `attachAt` 'top-left' | 'top' | 'top-right' | 'right' | 'bottom-right' | 'bottom' | 'bottom-left' | 'left'
            - `attachedTo` string
            - `borderRadius` 'none' | 'sm' | 'md' | 'lg' | 'full'
            - `boundaryStyle` 'tab' | 'inset' | 'c4'
            - `cardHeader` boolean
            - `cardMedia` 'badge' | 'tile' | 'initial'
            - `cellComments` CellCommentThreads
            - `chairFacing` 'n' | 'e' | 's' | 'w'
            - `chartAxis` boolean
            - `chartLegend` boolean
            - `chartLegendPosition` 'top' | 'right' | 'bottom' | 'left'
            - `chartPalette` 'vivid' | 'ocean' | 'forest' | 'sunset' | 'berry' | 'earth' | 'grey' | 'contrast'
            - `chartSource` ChartSource
              - …
            - `chartValues` boolean
            - `chartVariant` 'horizontal' | 'area' | 'scatter' | 'doughnut'
            - `checklistItems` ChecklistItem[]
              - …
            - `chipLook` 'solid' | 'ink' | 'outline' | 'tinted' | 'quiet'
            - `code` string
            - `codeLanguage` 'plain' | 'ts' | 'js' | 'python' | 'json' | 'bash' | 'sql' | 'html' | 'css' | 'yaml'
            - `codeTheme` 'midnight' | 'graphite' | 'ocean' | 'forest' | 'plum' | 'contrast' | 'paper' | 'parchment'
            - `codeWrap` boolean
            - `collabRound` string
            - `colorPreset` string
            - `commentThread` CommentThread
              - …
            - `conceptAnim` 'build' | 'pulse' | 'flow'
            - `conceptAnimRepeat` boolean
            - `conceptAnimSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `conceptRows` ConceptRow[]
              - …
            - `decisionDate` string
            - `decisionDrivers` string[]
            - `decisionStatus` 'proposed' | 'accepted' | 'rejected' | 'superseded'
            - `entityFields` EntityField[]
              - …
            - `estimateScale` 'fibonacci' | 'tshirt' | 'powers'
            - `fillColor` string
            - `fillSwatch` 1 | 2 | 3 | 4 | 5 | 6
            - `finish` 'flexible' | 'professional' | 'sketch' | 'marker'
            - `fixedSize` boolean
            - `flowDirection` 'down' | 'right'
            - `flowLaneId` string
            - `flowchartId` string
            - `font` string
            - `headerFill` string
            - `headerSize` number
            - `height` number, required
            - `hubSpokes` boolean
            - `iconAnimation` 'spin' | 'beat' | 'pulse' | 'glow' | 'ping' | 'breathe' | 'shimmer' | 'bounce' | 'wiggle' | 'flash' | 'tada' | 'flip' | 'jump' | 'swing' | 'float'
            - `iconAnimationRepeat` boolean
            - `iconAnimationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `iconId` string
            - `iconPosition` 'left' | 'right' | 'above' | 'below'
            - `iconSize` 'sm' | 'md' | 'lg' | 'xl'
            - `iconWeight` 'thin' | 'regular' | 'bold'
            - `id` string, required
            - `ideaCardIds` string[]
            - `ideaCards` string[]
            - `ideasRevealed` boolean
            - `keyMeanings` object
            - `keyRows` KeyRow[]
              - …
            - `label` string
            - `layerId` string
            - `legendItems` LegendItem[]
              - …
            - `lineCategories` string[]
            - `lineSeries` LineSeries[]
              - …
            - `link` union
              - …
            - `locked` boolean
            - `marker` 'green-circle' | 'orange-circle' | 'red-circle' | 'checkbox-unchecked' | 'checkbox-checked'
            - `markerSize` 'scale' | 'sm' | 'md' | 'lg'
            - `mindFlow` 'tree' | 'leftward' | 'balanced' | 'downward' | 'upward' | 'bubble'
            - `mindLook` 'person'
            - `mindParentId` string
            - `mindSpacing` 'tight' | 'compact' | 'comfortable' | 'wide': How far apart a map's nodes sit (docs/specs/009-elements/mind-node.md "Spacing").
            - `mode` 'select' | 'pan' | 'laser' | 'spotlight' | 'avatar' | 'eraser' | 'format' | 'isometric'
            - `navLinks` string[]
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `pageSubtitle` string
            - `pageTitle` string
            - `penColour` union
              - …
            - `penTextColour` union
              - …
            - `pickerOptions` string[]
            - `pickerResult` string
            - `pickerSource` 'participants' | 'options'
            - `pieAnim` 'grow' | 'pop' | 'spin' | 'pulse'
            - `pieAnimRepeat` boolean
            - `pieAnimSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `pieSlices` PieSlice[]
              - …
            - `planBoard` PlanBoardSetup
              - …
            - `planCard` PlanCardRef
              - …
            - `planSheet` PlanSheetRef
              - …
            - `planView` PlanViewRef
              - …
            - `pointerTip` object
              - …
            - `portalTarget` string
            - `processSteps` string[]
            - `progress` number
            - `progressAnim` 'fill' | 'pulse' | 'stripes'
            - `progressAnimRepeat` boolean
            - `progressAnimSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `pyramidVariant` 'pyramid' | 'inverted' | 'funnel'
            - `qaNotes` QaNote[]
              - …
            - `qaRev` number
            - `quizCorrect` number
            - `quizLockedAt` number
            - `quizOptions` string[]
            - `quizRevealed` boolean
            - `quizSeconds` number
            - `quizStartedAt` number
            - `railCount` number
            - `railLabels` string[]
            - `rating` number
            - `ratingAnim` 'pop' | 'twinkle' | 'pulse' | 'rock'
            - `ratingAnimRepeat` boolean
            - `ratingAnimSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `reaction` 'confetti' | 'sparkles' | 'hearts' | 'applause' | 'fireworks'
            - `responses` ParticipantResponse[]
              - …
            - `responsesRevealed` boolean
            - `revealed` boolean
            - `richText` TextRun[]
              - …
            - `rollCall` RollCallEntry[]
              - …
            - `roomDoor` 'n' | 'e' | 's' | 'w' | 'none'
            - `rotation` number
            - `sankeyAlign` 'justify' | 'left': Where the end nodes sit: every end node in the last column, or each node at its own step from the start.
            - `sankeyAnim` 'grow' | 'flow' | 'cascade' | 'pulse' | 'rise': Grow sweeps the diagram in from the left; Flow runs a current along every band; Cascade brings the columns in one after another; Pulse sends a slow wave of light across the bands; Rise grows each column's nodes, then fades their bands in. Flow and Pulse loop; the rest play once.
            - `sankeyAnimRepeat` boolean
            - `sankeyAnimSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `sankeyFlows` SankeyFlow[]
              - …
            - `sankeyLeftover` 'show' | 'hide': Whether a node that sends on less than it receives draws the difference as a band to a Leftover node.
            - `sankeyLeftoverName` string
            - `sankeyLinkColor` 'source' | 'target' | 'gradient' | 'neutral': How a flow's band is coloured: its source node, its target node, a blend of both, or one quiet grey.
            - `sankeyNodes` SankeyNodeStyle[]
              - …
            - `sankeyUnit` string
            - `sankeyValueLabel` 'value' | 'percent' | 'none': What a node's label says under its name.
            - `sequenceAnim` 'play'
            - `sequenceAnimRepeat` boolean
            - `sequenceAnimSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `sequenceMessages` SequenceElementMessage[]
              - …
            - `sequenceNumbered` boolean
            - `sequenceParticipants` SequenceElementParticipant[]
              - …
            - `session` SessionButtonConfig
              - …
            - `shadow` ElementShadow
              - …
            - `shape` 'square' | 'circle' | 'diamond' | 'cylinder' | 'parallelogram' | 'hexagon' | 'document' | 'page' | 'mind-node' | 'lane' | 'entity' | 'banner' | 'callout' | 'card' | 'badge' | 'step' | 'pointer-note' | 'diagram-key' | 'stack' | 'sequence' | 'boundary' | 'layer-stack' | 'pyramid' | 'cycle' | 'hub' | 'onion' | 'chevrons' | 'stat-row' | 'process' | 'site-header' | 'mode-button' | 'portal' | 'tab-window' | 'session-button' | 'reveal' | 'picker' | 'reaction-pad' | 'comment-pin' | 'action-card' | 'done-check' | 'chair' | 'fence' | 'avatar-pad' | 'desk' | 'sofa' | 'room' | 'meeting-table' | 'plant' | 'bookshelf' | 'water-cooler' | 'coffee-machine' | 'rug' | 'estimate' | 'temperature' | 'idea-box' | 'qa-board' | 'agenda' | 'decision' | 'roll-call' | 'quiz' | 'stadium' | 'actor' | 'final-state' | 'cloud' | 'triangle' | 'trapezoid' | 'star' | 'speech-bubble' | 'frame' | 'browser' | 'monitor' | 'laptop' | 'phone' | 'tablet' | 'foldable' | 'smartwatch' | 'progress-bar' | 'progress-ring' | 'timeline-rail' | 'rating' | 'pie-chart' | 'bar-chart' | 'line-chart' | 'code-block' | 'checklist' | 'legend' | 'sankey' | 'focus-button' | 'icon' | 'sticker' | 'plan-board' | 'plan-card' | 'plan-view' | 'plan-sheet', required
            - `sheetAnchor` SheetAnchor
              - …
            - `stackAlign` 'start' | 'center' | 'end'
            - `stackColumns` number
            - `stackDirection` 'row' | 'column' | 'grid'
            - `stackGap` number
            - `stackPadding` number
            - `stats` StatItem[]
              - …
            - `stepSequence` boolean
            - `stickerId` string
            - `strokeColor` string
            - `strokeStyle` 'solid' | 'dashed' | 'dotted' | 'dash-dot' | 'long-dash' | 'dash-dot-dot'
            - `strokeSwatch` 1 | 2 | 3 | 4 | 5 | 6
            - `strokeWidth` 'none' | 'thin' | 'medium' | 'thick' | 'extra-thick'
            - `tags` string[]
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textAnimation` 'typewriter' | 'words' | 'cascade' | 'focus' | 'scramble' | 'highlighter' | 'underline' | 'wave' | 'shine' | 'flicker' | 'rainbow' | 'glow' | 'bounce' | 'float'
            - `textAnimationRepeat` boolean
            - `textAnimationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `themeLockFill` boolean
            - `titleOrientation` 'upright'
            - `type` 'shape', required
            - `width` number, required
            - `windowTabId` string
            - `x` number, required
            - `y` number, required
          - TextElement
            - `action` ElementAction
              - …
            - `addedBy` string
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `commentThread` CommentThread
              - …
            - `fillColor` string
            - `finish` 'flexible' | 'professional' | 'sketch' | 'marker'
            - `font` string
            - `fontWeight` 400 | 500 | 700
            - `headerFill` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `letterSpacing` number
            - `link` union
              - …
            - `locked` boolean
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `penTextColour` union
              - …
            - `richText` TextRun[]
              - …
            - `rotation` number
            - `sizing` 'fit' | 'wrap'
            - `strokeColor` string
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textAnimation` 'typewriter' | 'words' | 'cascade' | 'focus' | 'scramble' | 'highlighter' | 'underline' | 'wave' | 'shine' | 'flicker' | 'rainbow' | 'glow' | 'bounce' | 'float'
            - `textAnimationRepeat` boolean
            - `textAnimationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `textArc` number
            - `textBold` boolean
            - `textCase` 'upper' | 'lower'
            - `textColor` string
            - `textItalic` boolean
            - `textScale` number
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textSwatch` 1 | 2 | 3 | 4 | 5 | 6
            - `textUnderline` boolean
            - `type` 'text', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
          - StickyElement
            - `action` ElementAction
              - …
            - `addedBy` string
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `commentThread` CommentThread
              - …
            - `esDraft` true
            - `esKind` 'domain-event' | 'command' | 'actor' | 'policy' | 'read-model' | 'external-system' | 'aggregate' | 'hotspot'
            - `fillColor` string
            - `finish` 'flexible' | 'professional' | 'sketch' | 'marker'
            - `fixedSize` boolean
            - `font` string
            - `headerFill` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `penTextColour` union
              - …
            - `richText` TextRun[]
              - …
            - `rotation` number
            - `shadow` ElementShadow
              - …
            - `strokeColor` string
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textAnimation` 'typewriter' | 'words' | 'cascade' | 'focus' | 'scramble' | 'highlighter' | 'underline' | 'wave' | 'shine' | 'flicker' | 'rainbow' | 'glow' | 'bounce' | 'float'
            - `textAnimationRepeat` boolean
            - `textAnimationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `type` 'sticky', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
          - ImageElement
            - `action` ElementAction
              - …
            - `alt` string
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `borderRadius` 'none' | 'sm' | 'md' | 'lg' | 'full'
            - `commentThread` CommentThread
              - …
            - `credit` ImageCredit
              - …
            - `fillColor` string
            - `font` string
            - `height` number, required
            - `heroCaption` HeroCaption
              - …
            - `id` string, required
            - `imageId` string, nullable, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `naturalHeight` number
            - `naturalWidth` number
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `objectFit` 'cover' | 'contain'
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `rotation` number
            - `shadow` ElementShadow
              - …
            - `strokeColor` string
            - `strokeStyle` 'solid' | 'dashed' | 'dotted' | 'dash-dot' | 'long-dash' | 'dash-dot-dot'
            - `strokeWidth` 'none' | 'thin' | 'medium' | 'thick' | 'extra-thick'
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `type` 'image', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
          - FreehandElement
            - `action` ElementAction
              - …
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `borderRadius` 'none' | 'sm' | 'md' | 'lg' | 'full'
            - `closed` boolean, required
            - `commentThread` CommentThread
              - …
            - `fillColor` string
            - `font` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `packedPoints` string, byte, required: The stroke's points, normalised into its box, and a pen's pressure at each when it reported one, packed into one block: base64 of a version byte, a flags byte and a little-endian record per point (x u16, y u16, optional pressure u8). See docs/specs/006-document/stroke-points.md.
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `pen` 'highlighter'
            - `penColour` union
              - …
            - `penWidth` number
            - `rotation` number
            - `straightEdges` boolean
            - `streamline` number
            - `strokeColor` string
            - `strokeStyle` 'solid' | 'dashed' | 'dotted' | 'dash-dot' | 'long-dash' | 'dash-dot-dot'
            - `strokeWidth` 'none' | 'thin' | 'medium' | 'thick' | 'extra-thick'
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `themeLockFill` boolean
            - `type` 'freehand', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
          - PathElement
            - `action` ElementAction
              - …
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `borderRadius` 'none' | 'sm' | 'md' | 'lg' | 'full'
            - `closed` boolean, required
            - `commentThread` CommentThread
              - …
            - `fillColor` string
            - `fillSwatch` 1 | 2 | 3 | 4 | 5 | 6
            - `font` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `nodes` PathNode[], required
              - …
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `penColour` union
              - …
            - `rotation` number
            - `strokeColor` string
            - `strokeStyle` 'solid' | 'dashed' | 'dotted' | 'dash-dot' | 'long-dash' | 'dash-dot-dot'
            - `strokeSwatch` 1 | 2 | 3 | 4 | 5 | 6
            - `strokeWidth` 'none' | 'thin' | 'medium' | 'thick' | 'extra-thick'
            - `subpaths` array[]
              - …
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `type` 'path', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
          - TableElement
            - `action` ElementAction
              - …
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `cellStyles` array[]
              - …
            - `cells` array[], required
              - …
            - `colWidths` number[]
            - `commentThread` CommentThread
              - …
            - `fillColor` string
            - `finish` 'flexible' | 'professional' | 'sketch' | 'marker'
            - `font` string
            - `headerColumn` boolean
            - `headerFill` string
            - `headerRow` boolean
            - `headerTextColor` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `rotation` number
            - `rowHeights` number[]
            - `strokeColor` string
            - `strokeStyle` 'solid' | 'dashed' | 'dotted' | 'dash-dot' | 'long-dash' | 'dash-dot-dot'
            - `strokeWidth` 'none' | 'thin' | 'medium' | 'thick' | 'extra-thick'
            - `tablePreset` string
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textAnimation` 'typewriter' | 'words' | 'cascade' | 'focus' | 'scramble' | 'highlighter' | 'underline' | 'wave' | 'shine' | 'flicker' | 'rainbow' | 'glow' | 'bounce' | 'float'
            - `textAnimationRepeat` boolean
            - `textAnimationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `type` 'table', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
            - `zebra` boolean
          - AnnotationElement
            - `action` ElementAction
              - …
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `articleNote` 'comment' | 'action'
            - `aspectLocked` boolean
            - `commentThread` CommentThread
              - …
            - `fillColor` string
            - `font` string
            - `headerFill` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `rotation` number
            - `strokeColor` string
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `type` 'annotation', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
          - LinkCardElement
            - `action` ElementAction
              - …
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `commentThread` CommentThread
              - …
            - `fillColor` string
            - `font` string
            - `headerFill` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `meta` LinkCardMeta
              - …
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `rotation` number
            - `shadow` ElementShadow
              - …
            - `strokeColor` string
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `type` 'link-card', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
          - VideoElement
            - `action` ElementAction
              - …
            - `animation` union
              - …
            - `animationRepeat` boolean
            - `animationSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `aspectLocked` boolean
            - `commentThread` CommentThread
              - …
            - `embedProvider` 'youtube' | 'vimeo' | 'loom' | 'figma' | 'gdocs' | 'website'
            - `fillColor` string
            - `font` string
            - `headerFill` string
            - `height` number, required
            - `id` string, required
            - `label` string
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `note` string
            - `noteRich` TextRun[]
              - …
            - `opacity` number
            - `padding` 'none' | 'sm' | 'md' | 'lg'
            - `rotation` number
            - `shadow` ElementShadow
              - …
            - `strokeColor` string
            - `textAlignX` 'left' | 'center' | 'right'
            - `textAlignY` 'top' | 'middle' | 'bottom'
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `type` 'video', required
            - `width` number, required
            - `x` number, required
            - `y` number, required
        - ArrowElement
          - `arrowEnds` 'from' | 'to' | 'both' | 'none'
          - `arrowStyle` 'straight' | 'curved' | 'angled'
          - `arrowheadColor` string
          - `arrowheadShape` 'triangle' | 'triangle-hollow' | 'line' | 'circle' | 'circle-hollow' | 'diamond' | 'diamond-hollow' | 'one' | 'zero-or-one' | 'many' | 'zero-or-many' | 'one-or-many'
          - `arrowheadSize` 'small' | 'medium' | 'large' | 'extra-large'
          - `arrowheadStartShape` 'triangle' | 'triangle-hollow' | 'line' | 'circle' | 'circle-hollow' | 'diamond' | 'diamond-hollow' | 'one' | 'zero-or-one' | 'many' | 'zero-or-many' | 'one-or-many'
          - `curveOffset` object
            - `dx` number, required
            - `dy` number, required
          - `curvePoints` object[]
            - `dx` number, required
            - `dy` number, required
          - `elbowOffset` object
            - `dx` number, required
            - `dy` number, required
          - `exactEnd` boolean
          - `exactStart` boolean
          - `finish` 'flexible' | 'professional' | 'sketch' | 'marker'
          - `flow` 'dashes' | 'dots' | 'beads' | 'pulse' | 'grow' | 'glow' | 'heartbeat' | 'breathe' | 'shimmer' | 'signal' | 'draw' | 'comet' | 'rainbow' | 'strobe' | 'wind'
          - `flowRepeat` boolean
          - `flowSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
          - `font` string
          - `from` union, required
            - object
              - …
            - object
              - …
            - object
              - …
          - `id` string, required
          - `label` string
          - `labelFill` string
          - `labelMaxWidth` number
          - `labelOffset` object
            - `offset` number, required
            - `t` number, required
          - `layerId` string
          - `link` union
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
          - `locked` boolean
          - `opacity` number
          - `penColour` union
            - 'ink'
            - 'grey'
            - 'blue' | 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'violet' | 'pink': The eight hued stock colours, each tuned per board.
          - `penTextColour` union
            - 'ink'
            - 'grey'
            - 'blue' | 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'violet' | 'pink': The eight hued stock colours, each tuned per board.
          - `routeBehind` boolean
          - `strokeColor` string
          - `strokeStyle` 'solid' | 'dashed' | 'dotted' | 'dash-dot' | 'long-dash' | 'dash-dot-dot'
          - `strokeSwatch` 1 | 2 | 3 | 4 | 5 | 6
          - `strokeWidth` number
          - `textBold` boolean
          - `textColor` string
          - `textItalic` boolean
          - `textSize` union
            - 'scale' | 'sm' | 'md' | 'lg'
            - number
          - `textStrikethrough` boolean
          - `textUnderline` boolean
          - `to` union, required
            - object
              - …
            - object
              - …
            - object
              - …
          - `type` 'arrow', required
    - `height` number, required
    - `id` string, required
    - `title` string, required
    - `width` number, required

## Response `200`

Success.

- object
  - `library` ShapeLibrary, required
    - `createdAt` number, required
    - `id` string, required
    - `items` ShapeLibraryItem[], required
      - `elements` Element[], required
        - union
          - union
            - ShapeElement
              - …
            - TextElement
              - …
            - StickyElement
              - …
            - ImageElement
              - …
            - FreehandElement
              - …
            - PathElement
              - …
            - TableElement
              - …
            - AnnotationElement
              - …
            - LinkCardElement
              - …
            - VideoElement
              - …
          - ArrowElement
            - `arrowEnds` 'from' | 'to' | 'both' | 'none'
            - `arrowStyle` 'straight' | 'curved' | 'angled'
            - `arrowheadColor` string
            - `arrowheadShape` 'triangle' | 'triangle-hollow' | 'line' | 'circle' | 'circle-hollow' | 'diamond' | 'diamond-hollow' | 'one' | 'zero-or-one' | 'many' | 'zero-or-many' | 'one-or-many'
            - `arrowheadSize` 'small' | 'medium' | 'large' | 'extra-large'
            - `arrowheadStartShape` 'triangle' | 'triangle-hollow' | 'line' | 'circle' | 'circle-hollow' | 'diamond' | 'diamond-hollow' | 'one' | 'zero-or-one' | 'many' | 'zero-or-many' | 'one-or-many'
            - `curveOffset` object
              - …
            - `curvePoints` object[]
              - …
            - `elbowOffset` object
              - …
            - `exactEnd` boolean
            - `exactStart` boolean
            - `finish` 'flexible' | 'professional' | 'sketch' | 'marker'
            - `flow` 'dashes' | 'dots' | 'beads' | 'pulse' | 'grow' | 'glow' | 'heartbeat' | 'breathe' | 'shimmer' | 'signal' | 'draw' | 'comet' | 'rainbow' | 'strobe' | 'wind'
            - `flowRepeat` boolean
            - `flowSpeed` 'slowest' | 'slow' | 'normal' | 'fast'
            - `font` string
            - `from` union, required
              - …
            - `id` string, required
            - `label` string
            - `labelFill` string
            - `labelMaxWidth` number
            - `labelOffset` object
              - …
            - `layerId` string
            - `link` union
              - …
            - `locked` boolean
            - `opacity` number
            - `penColour` union
              - …
            - `penTextColour` union
              - …
            - `routeBehind` boolean
            - `strokeColor` string
            - `strokeStyle` 'solid' | 'dashed' | 'dotted' | 'dash-dot' | 'long-dash' | 'dash-dot-dot'
            - `strokeSwatch` 1 | 2 | 3 | 4 | 5 | 6
            - `strokeWidth` number
            - `textBold` boolean
            - `textColor` string
            - `textItalic` boolean
            - `textSize` union
              - …
            - `textStrikethrough` boolean
            - `textUnderline` boolean
            - `to` union, required
              - …
            - `type` 'arrow', required
      - `height` number, required
      - `id` string, required
      - `title` string, required
      - `width` number, required
    - `name` string, required
    - `ownerId` string, required
    - `source` 'drawio', required: Where a library came from; one value today.
    - `updatedAt` number, required

## Other responses

- `400`: Error.
- `401`: Error.
- `403`: Error.
- `404`: Error.
- `409`: Error.
- `413`: Error.
- `429`: Rate limited. Back off and retry.

---

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