Penpot Update File API

The Update File API from Penpot — 1 operation(s) for update file.

OpenAPI Specification

penpot-update-file-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: '2.16'
  title: Penpot RPC Add Team To Organization Update File API
  description: Penpot RPC-style REST API for projects, files, pages, components, and design assets.
  x-api-id: penpot-rpc
  contact:
    url: https://community.penpot.app/
    name: Penpot Support
  x-humanURL: https://penpot.app/integrations-api
servers:
- url: https://design.penpot.app/api/main/methods
  description: MAIN API
tags:
- name: Update File
paths:
  update-file:
    post:
      description: null
      deprecated: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: update-file
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Uuid'
                sessionId:
                  $ref: '#/components/schemas/Uuid'
                revn:
                  $ref: '#/components/schemas/Int'
                vern:
                  $ref: '#/components/schemas/Int'
                features:
                  $ref: '#/components/schemas/Features'
                changes:
                  type: array
                  items:
                    title: Change
                    oneOf:
                    - title: SetCommentThreadPositionChange
                      type: object
                      properties:
                        commentThreadId:
                          $ref: '#/components/schemas/Uuid'
                        pageId:
                          $ref: '#/components/schemas/Uuid'
                        frameId:
                          $ref: '#/components/schemas/Uuid'
                          nullable: true
                        position:
                          $ref: '#/components/schemas/GeomPoint'
                          nullable: true
                      required:
                      - commentThreadId
                      - pageId
                      - frameId
                      - position
                    - title: AddObjChange
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - add-obj
                        id:
                          $ref: '#/components/schemas/Uuid'
                        obj:
                          title: Shape
                          allOf:
                          - title: Shape
                            oneOf:
                            - title: ShapeMinimalRecord
                              type: object
                              properties:
                                layoutItemMarginType:
                                  title: enum
                                  type: string
                                  enum:
                                  - simple
                                  - multiple
                                layoutItemMargin:
                                  type: object
                                  properties:
                                    m1:
                                      $ref: '#/components/schemas/SafeNumber'
                                    m2:
                                      $ref: '#/components/schemas/SafeNumber'
                                    m3:
                                      $ref: '#/components/schemas/SafeNumber'
                                    m4:
                                      $ref: '#/components/schemas/SafeNumber'
                                layoutItemMaxH:
                                  $ref: '#/components/schemas/SafeNumber'
                                layoutItemMinH:
                                  $ref: '#/components/schemas/SafeNumber'
                                layoutItemMaxW:
                                  $ref: '#/components/schemas/SafeNumber'
                                layoutItemMinW:
                                  $ref: '#/components/schemas/SafeNumber'
                                layoutItemHSizing:
                                  title: enum
                                  type: string
                                  enum:
                                  - fill
                                  - fix
                                  - auto
                                layoutItemVSizing:
                                  title: enum
                                  type: string
                                  enum:
                                  - fill
                                  - fix
                                  - auto
                                layoutItemAlignSelf:
                                  title: enum
                                  type: string
                                  enum:
                                  - start
                                  - center
                                  - end
                                  - stretch
                                layoutItemAbsolute:
                                  type: boolean
                                layoutItemZIndex:
                                  $ref: '#/components/schemas/SafeNumber'
                                shapes:
                                  type: array
                                  items:
                                    $ref: '#/components/schemas/Uuid'
                                pageId:
                                  $ref: '#/components/schemas/Uuid'
                                componentId:
                                  $ref: '#/components/schemas/Uuid'
                                componentFile:
                                  $ref: '#/components/schemas/Uuid'
                                componentRoot:
                                  type: boolean
                                mainInstance:
                                  type: boolean
                                remoteSynced:
                                  type: boolean
                                shapeRef:
                                  $ref: '#/components/schemas/Uuid'
                                touched:
                                  type: array
                                  items:
                                    type: string
                                  uniqueItems: true
                                  nullable: true
                                blocked:
                                  type: boolean
                                collapsed:
                                  type: boolean
                                locked:
                                  type: boolean
                                hidden:
                                  type: boolean
                                maskedGroup:
                                  type: boolean
                                fills:
                                  anyOf:
                                  - type: array
                                    items:
                                      allOf:
                                      - title: FillAttrs
                                        type: object
                                        properties:
                                          fillColorRefFile:
                                            $ref: '#/components/schemas/Uuid'
                                          fillColorRefId:
                                            $ref: '#/components/schemas/Uuid'
                                          fillOpacity:
                                            title: number
                                            description: number
                                            type: number
                                          fillColor:
                                            title: HexColor
                                            description: HEX Color String
                                            type: string
                                            format: rgb
                                          fillColorGradient:
                                            title: Gradient
                                            type: object
                                            properties:
                                              type:
                                                title: enum
                                                type: string
                                                enum:
                                                - radial
                                                - linear
                                              startX:
                                                $ref: '#/components/schemas/SafeNumber'
                                              startY:
                                                $ref: '#/components/schemas/SafeNumber'
                                              endX:
                                                $ref: '#/components/schemas/SafeNumber'
                                              endY:
                                                $ref: '#/components/schemas/SafeNumber'
                                              width:
                                                $ref: '#/components/schemas/SafeNumber'
                                              stops:
                                                type: array
                                                items:
                                                  title: GradientStop
                                                  type: object
                                                  properties:
                                                    color:
                                                      title: HexColor
                                                      description: HEX Color String
                                                      type: string
                                                      format: rgb
                                                    opacity:
                                                      title: number
                                                      description: number
                                                      type: number
                                                    offset:
                                                      title: number
                                                      description: number
                                                      type: number
                                                  required:
                                                  - color
                                                  - offset
                                                minItems: 1
                                            required:
                                            - type
                                            - startX
                                            - startY
                                            - endX
                                            - endY
                                            - width
                                            - stops
                                            additionalProperties: false
                                          fillImage:
                                            title: ImageColor
                                            type: object
                                            properties:
                                              width:
                                                title: integer
                                                description: integer
                                                type: integer
                                                minimum: 0
                                              height:
                                                title: integer
                                                description: integer
                                                type: integer
                                                minimum: 0
                                              mtype:
                                                $ref: '#/components/schemas/Text'
                                              id:
                                                $ref: '#/components/schemas/Uuid'
                                              name:
                                                $ref: '#/components/schemas/Text'
                                              keepAspectRatio:
                                                type: boolean
                                            required:
                                            - width
                                            - height
                                            - mtype
                                            - id
                                            additionalProperties: false
                                        additionalProperties: false
                                  - {}
                                proportion:
                                  $ref: '#/components/schemas/SafeNumber'
                                proportionLock:
                                  type: boolean
                                constraintsH:
                                  title: enum
                                  type: string
                                  enum:
                                  - scale
                                  - center
                                  - right
                                  - leftright
                                  - left
                                constraintsV:
                                  title: enum
                                  type: string
                                  enum:
                                  - bottom
                                  - scale
                                  - top
                                  - center
                                  - topbottom
                                fixedScroll:
                                  type: boolean
                                r1:
                                  $ref: '#/components/schemas/SafeNumber'
                                r2:
                                  $ref: '#/components/schemas/SafeNumber'
                                r3:
                                  $ref: '#/components/schemas/SafeNumber'
                                r4:
                                  $ref: '#/components/schemas/SafeNumber'
                                opacity:
                                  $ref: '#/components/schemas/SafeNumber'
                                grids:
                                  type: array
                                  items:
                                    title: Grid
                                    oneOf:
                                    - title: ColumnGridAttrs
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                          - column
                                        display:
                                          type: boolean
                                        params:
                                          title: ColumnGridParams
                                          type: object
                                          properties:
                                            color:
                                              title: GridColor
                                              type: object
                                              properties:
                                                color:
                                                  title: HexColor
                                                  description: HEX Color String
                                                  type: string
                                                  format: rgb
                                                opacity:
                                                  $ref: '#/components/schemas/SafeNumber'
                                              required:
                                              - color
                                              - opacity
                                            type:
                                              title: enum
                                              type: string
                                              enum:
                                              - center
                                              - right
                                              - stretch
                                              - left
                                            size:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                            margin:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                            itemLength:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                            gutter:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                          required:
                                          - color
                                      required:
                                      - type
                                      - display
                                      - params
                                    - title: RowGridAttrs
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                          - row
                                        display:
                                          type: boolean
                                        params:
                                          title: ColumnGridParams
                                          type: object
                                          properties:
                                            color:
                                              title: GridColor
                                              type: object
                                              properties:
                                                color:
                                                  title: HexColor
                                                  description: HEX Color String
                                                  type: string
                                                  format: rgb
                                                opacity:
                                                  $ref: '#/components/schemas/SafeNumber'
                                              required:
                                              - color
                                              - opacity
                                            type:
                                              title: enum
                                              type: string
                                              enum:
                                              - center
                                              - right
                                              - stretch
                                              - left
                                            size:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                            margin:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                            itemLength:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                            gutter:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                          required:
                                          - color
                                      required:
                                      - type
                                      - display
                                      - params
                                    - title: SquareGridAttrs
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                          - square
                                        display:
                                          type: boolean
                                        params:
                                          title: SquareGridParams
                                          type: object
                                          properties:
                                            size:
                                              $ref: '#/components/schemas/SafeNumber'
                                              nullable: true
                                            color:
                                              title: GridColor
                                              type: object
                                              properties:
                                                color:
                                                  title: HexColor
                                                  description: HEX Color String
                                                  type: string
                                                  format: rgb
                                                opacity:
                                                  $ref: '#/components/schemas/SafeNumber'
                                              required:
                                              - color
                                              - opacity
                                          required:
                                          - color
                                      required:
                                      - type
                                      - display
                                      - params
                                exports:
                                  type: array
                                  items:
                                    title: ShapeExport
                                    type: object
                                    properties:
                                      type:
                                        title: enum
                                        type: string
                                        enum:
                                        - png
                                        - pdf
                                        - webp
                                        - svg
                                        - jpeg
                                      scale:
                                        $ref: '#/components/schemas/SafeNumber'
                                      suffix:
                                        type: string
                                    required:
                                    - type
                                    - scale
                                    - suffix
                                strokes:
                                  type: array
                                  items:
                                    allOf:
                                    - title: StrokeAttrs
                                      type: object
                                      properties:
                                        strokeColorRefFile:
                                          $ref: '#/components/schemas/Uuid'
                                        strokeColorRefId:
                                          $ref: '#/components/schemas/Uuid'
                                        strokeOpacity:
                                          $ref: '#/components/schemas/SafeNumber'
                                        strokeStyle:
                                          title: enum
                                          type: string
                                          enum:
                                          - solid
                                          - mixed
                                          - dashed
                                          - dotted
                                        strokeWidth:
                                          $ref: '#/components/schemas/SafeNumber'
                                        strokeAlignment:
                                          title: enum
                                          type: string
                                          enum:
                                          - center
                                          - inner
                                          - outer
                                        strokeCapStart:
                                          title: enum
                                          type: string
                                          enum:
                                          - null
                                          - line-arrow
                                          - diamond-marker
                                          - round
                                          - triangle-arrow
                                          - square
                                          - circle-marker
                                          - square-marker
                                        strokeCapEnd:
                                          title: enum
                                          type: string
                                          enum:
                                          - null
                                          - line-arrow
                                          - diamond-marker
                                          - round
                                          - triangle-arrow
                                          - square
                                          - circle-marker
                                          - square-marker
                                        strokeColor:
                                          title: HexColor
                                          description: HEX Color String
                                          type: string
                                          format: rgb
                                        strokeColorGradient:
                                          title: Gradient
                                          type: object
                                          properties:
                                            type:
                                              title: enum
                                              type: string
                                              enum:
                                              - radial
                                              - linear
                                            startX:
                                              $ref: '#/components/schemas/SafeNumber'
                                            startY:
                                              $ref: '#/components/schemas/SafeNumber'
                                            endX:
                                              $ref: '#/components/schemas/SafeNumber'
                                            endY:
                                              $ref: '#/components/schemas/SafeNumber'
                                            width:
                                              $ref: '#/components/schemas/SafeNumber'
                                            stops:
                                              type: array
                                              items:
                                                title: GradientStop
                                                type: object
                                                properties:
                                                  color:
                                                    title: HexColor
                                                    description: HEX Color String
                                                    type: string
                                                    format: rgb
                                                  opacity:
                                                    title: number
                                                    description: number
                                                    type: number
                                                  offset:
                                                    title: number
                                                    description: number
                                                    type: number
                                                required:
                                                - color
                                                - offset
                                              minItems: 1
                                          required:
                                          - type
                                          - startX
                                          - startY
                                          - endX
                                          - endY
                                          - width
                                          - stops
                                          additionalProperties: false
                                        strokeImage:
                                          title: ImageColor
                                          type: object
                                          properties:
                                            width:
                                              title: integer
                                              description: integer
                                              type: integer
                                              minimum: 0
                                            height:
                                              title: integer
                                              description: integer
                                              type: integer
                                              minimum: 0
                                            mtype:
                                              $ref: '#/components/schemas/Text'
                                            id:
                                              $ref: '#/components/schemas/Uuid'
                                            name:
                                              $ref: '#/components/schemas/Text'
                                            keepAspectRatio:
                                              type: boolean
                                          required:
                                          - width
                                          - height
                                          - mtype
                                          - id
                                          additionalProperties: false
                                        hidden:
                                          type: boolean
                                      additionalProperties: false
                                blendMode:
                                  title: enum
                                  type: string
                                  enum:
                                  - hue
                      

# --- truncated at 32 KB (3065 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/penpot/refs/heads/main/openapi/penpot-update-file-api-openapi.yml