> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pixy.art/llms.txt
> Use this file to discover all available pages before exploring further.

# Duplicate design

> Create an independent copy of a Pixy design or public template.



## OpenAPI

````yaml /openapi.yaml post /api/v1/{designId}/duplicate
openapi: 3.1.0
info:
  title: Pixy Public API
  version: 1.0.0
  description: >
    Public API for validating bearer API keys, browsing and duplicating saved

    designs, and generating rendered design output from a Pixy design or
    template.


    The first endpoint in this reference is the API key validation endpoint used
    by

    integrations such as Zapier. Design, template, duplicate, and generate
    endpoints

    follow after it.


    This specification documents the currently exposed public endpoints in

    `apps/pixy-web/app/api/(public)`.
servers:
  - url: https://app.pixy.art
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Auth
    description: Resolve the current user for a Pixy bearer API key.
  - name: Generate
    description: Render design output from a Pixy design or template.
  - name: Templates
    description: Browse public Pixy templates.
  - name: Designs
    description: Browse designs saved in your Pixy organization.
paths:
  /api/v1/{designId}/duplicate:
    post:
      tags:
        - Designs
      summary: Duplicate design
      description: >
        Creates an independent copy of a Pixy design in the authenticated
        organization.


        The authenticated API key must belong to the same organization as the
        source

        design, unless the source is a public template. The duplicated design
        receives

        a new `id`, so editing the copy does not change the source design. If
        the

        source design has an Embed `userId`, the copy keeps that same
        association.
      operationId: duplicateDesign
      parameters:
        - in: path
          name: designId
          required: true
          schema:
            type: string
          description: Pixy design or public template identifier to copy.
          example: clr123exampledesign
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DuplicateDesignRequest'
            examples:
              default:
                summary: Duplicate with a custom name
                value:
                  name: Copy for campaign B
      responses:
        '200':
          description: Successfully duplicated the design.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DesignListItem'
              examples:
                success:
                  value:
                    id: des_copy_123
                    name: Copy for campaign B
                    thumbnail: https://assets.example.com/designs/copy.png
                    createdAt: '2026-05-19T10:00:00.000Z'
                    updatedAt: '2026-05-19T10:00:00.000Z'
                    userId: user_123
                    size:
                      width: 1080
                      height: 1080
        '400':
          description: The request path or body is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalidRequest:
                  value:
                    message: Design ID is required.
        '401':
          description: The bearer token is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unauthorized:
                  value:
                    message: Unauthorized
        '403':
          description: API access is not included in the current plan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                forbidden:
                  value:
                    message: >-
                      API access is not included in your current plan. Upgrade
                      to get access.
        '404':
          description: The requested design could not be found or is not accessible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                notFound:
                  value:
                    message: Design does not exist or you do not have access to it.
        '500':
          description: Pixy failed to duplicate the design.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                duplicateFailure:
                  value:
                    message: Failed to duplicate design.
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: javascript
          label: fetch
          source: >
            const response = await
            fetch('https://app.pixy.art/api/v1/YOUR_DESIGN_ID/duplicate', {
              method: 'POST',
              headers: {
                Authorization: 'Bearer YOUR_API_KEY',
                'Content-Type': 'application/json',
              },
              body: JSON.stringify({
                name: 'Copy for campaign B',
              }),
            })


            const copy = await response.json()


            console.log(copy.id)
components:
  schemas:
    DuplicateDesignRequest:
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
          description: >-
            Optional name for the copied design. Defaults to `Copy of {source
            name}`.
          example: Copy for campaign B
    DesignListItem:
      type: object
      additionalProperties: false
      required:
        - id
        - name
        - thumbnail
        - createdAt
        - updatedAt
        - userId
        - size
      properties:
        id:
          type: string
          description: Design identifier.
        name:
          type:
            - string
            - 'null'
          description: Design name.
        thumbnail:
          type:
            - string
            - 'null'
          format: uri
          description: Design thumbnail URL.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        userId:
          type:
            - string
            - 'null'
          description: Embedder-provided user id saved on this design.
        size:
          type: object
          additionalProperties: false
          required:
            - width
            - height
          properties:
            width:
              type:
                - integer
                - 'null'
              description: Design width in pixels.
            height:
              type:
                - integer
                - 'null'
              description: Design height in pixels.
    ErrorResponse:
      type: object
      additionalProperties: false
      required:
        - message
      properties:
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: Organization API key passed as a bearer token.

````