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

# Duplicate a Social Selling draft

> Copies a draft into a new DRAFT (version 1) for the same or another identity the caller may use, keeping the content, media assets, planning fields and lineage (`sourceDraftId`). Never schedules or publishes anything.

    > **Required scope:** `SOCIAL_SELLING_WRITE`
    >
    > **Rate limit:** 30 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json post /v1/social-selling/drafts/{draftId}/duplicate
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/social-selling/drafts/{draftId}/duplicate:
    post:
      tags:
        - Social Selling
      summary: Duplicate a Social Selling draft
      description: >-
        Copies a draft into a new DRAFT (version 1) for the same or another
        identity the caller may use, keeping the content, media assets, planning
        fields and lineage (`sourceDraftId`). Never schedules or publishes
        anything.

            > **Required scope:** `SOCIAL_SELLING_WRITE`
            >
            > **Rate limit:** 30 requests per minute
      parameters:
        - schema:
            type: integer
            exclusiveMinimum: 0
            description: Draft id (`draftId`).
          required: true
          description: Draft id (`draftId`).
          name: draftId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                identityId:
                  type: integer
                  exclusiveMinimum: 0
                  description: >-
                    Identity of the copy (default: the same). A copy for another
                    identity starts as a personal post.
      responses:
        '201':
          description: The copy
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      draftId:
                        type: number
                      version:
                        type: number
                        description: >-
                          Bumped by every edit. Pass it to schedule (approval)
                          and update.
                      status:
                        type: string
                        enum:
                          - DRAFT
                          - SCHEDULED
                          - PUBLISHED
                          - FAILED
                          - CANCELLED
                          - ARCHIVED
                      identity:
                        type: object
                        properties:
                          id:
                            type: number
                          name:
                            type:
                              - string
                              - 'null'
                        required:
                          - id
                          - name
                      title:
                        type:
                          - string
                          - 'null'
                      text:
                        type: string
                      mentions:
                        type: array
                        items:
                          type: object
                          properties:
                            start:
                              type: integer
                              minimum: 0
                              description: >-
                                Offset in Unicode code points (an emoji counts
                                as one).
                            length:
                              type: integer
                              minimum: 1
                            kind:
                              type: string
                              enum:
                                - PROFILE
                                - COMPANY
                            urn:
                              type: string
                              minLength: 1
                              description: >-
                                `urn:li:fsd_profile:<id>` for a person,
                                `urn:li:fsd_company:<id>` for a company page.
                              example: urn:li:fsd_company:98422414
                            label:
                              type: string
                              minLength: 1
                              description: Exactly the mentioned slice of `text`.
                          required:
                            - start
                            - length
                            - kind
                            - urn
                            - label
                          description: >-
                            A mention: the slice `text[start, start+length)`
                            links to `urn`.
                      attachments:
                        type: array
                        items:
                          type: object
                          properties:
                            assetId:
                              type: string
                            position:
                              type: number
                              description: 0-based order in the post (or draft).
                            origin:
                              type: string
                              enum:
                                - POST
                                - REPOSTED_POST
                                - UPLOAD
                            type:
                              type: string
                              enum:
                                - IMAGE
                                - VIDEO
                                - DOCUMENT
                                - ARTICLE
                                - POLL
                                - CELEBRATION
                                - REFERENCE
                            mimeType:
                              type:
                                - string
                                - 'null'
                            width:
                              type:
                                - number
                                - 'null'
                            height:
                              type:
                                - number
                                - 'null'
                            sizeBytes:
                              type:
                                - number
                                - 'null'
                            durationMs:
                              type:
                                - number
                                - 'null'
                            pageCount:
                              type:
                                - number
                                - 'null'
                            title:
                              type:
                                - string
                                - 'null'
                            description:
                              type:
                                - string
                                - 'null'
                            altText:
                              type:
                                - string
                                - 'null'
                            altTextSource:
                              type:
                                - string
                                - 'null'
                              enum:
                                - AUTHOR
                                - UPLOADER
                                - null
                              description: >-
                                Who wrote `altText`. Alt text is never generated
                                by Enginy.
                            linkUrl:
                              type:
                                - string
                                - 'null'
                              description: The link of an article or reference card.
                            pollOptions:
                              type:
                                - array
                                - 'null'
                              items:
                                type: string
                            transcript:
                              type: object
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - NOT_COLLECTED
                              required:
                                - status
                              description: >-
                                Video captions and transcripts are not collected
                                from LinkedIn.
                            access:
                              type: object
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - AVAILABLE
                                    - EXPIRING
                                    - EXPIRED
                                    - UNAVAILABLE
                                    - PENDING_UPLOAD
                                    - NOT_DOWNLOADABLE
                                  description: >-
                                    AVAILABLE: `downloadUrl` serves the file.
                                    EXPIRING: served by LinkedIn until
                                    `expiresAt` (refresh for a durable copy).
                                    EXPIRED / UNAVAILABLE: no working URL
                                    (`reason` says why; refresh).
                                    PENDING_UPLOAD: upload not completed.
                                    NOT_DOWNLOADABLE: no file (poll, link card).
                                downloadUrl:
                                  type:
                                    - string
                                    - 'null'
                                  description: >-
                                    HTTPS URL of the original file. Any HTTP
                                    client can GET it without a login, cookies
                                    or headers. Null unless AVAILABLE or
                                    EXPIRING.
                                previewUrl:
                                  type:
                                    - string
                                    - 'null'
                                  description: >-
                                    A smaller rendition to look at (the image
                                    itself; video/document thumbnail).
                                expiresAt:
                                  type:
                                    - string
                                    - 'null'
                                  description: >-
                                    When `downloadUrl` stops working (null =
                                    durable).
                                durable:
                                  type: boolean
                                  description: >-
                                    True when `downloadUrl` is Enginy’s durable
                                    copy.
                                refreshable:
                                  type: boolean
                                  description: >-
                                    True when
                                    `refresh_social_selling_media_access` can
                                    improve it.
                                verifiedAt:
                                  type:
                                    - string
                                    - 'null'
                                  description: >-
                                    When Enginy confirmed the URL serves the
                                    file (null = not probed).
                                reason:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - status
                                - downloadUrl
                                - previewUrl
                                - expiresAt
                                - durable
                                - refreshable
                                - verifiedAt
                                - reason
                            source:
                              type:
                                - object
                                - 'null'
                              properties:
                                trackedPostId:
                                  type: number
                                position:
                                  type: number
                                credit:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - trackedPostId
                                - position
                                - credit
                              description: >-
                                For a copy of a post’s media: where it came from
                                and its credit.
                          required:
                            - assetId
                            - position
                            - origin
                            - type
                            - mimeType
                            - width
                            - height
                            - sizeBytes
                            - durationMs
                            - pageCount
                            - title
                            - description
                            - altText
                            - altTextSource
                            - linkUrl
                            - pollOptions
                            - transcript
                            - access
                            - source
                      firstComment:
                        type:
                          - string
                          - 'null'
                      visibility:
                        type: string
                        enum:
                          - ANYONE
                          - CONNECTIONS
                      postAsCompany:
                        type: boolean
                      companyUrn:
                        type:
                          - string
                          - 'null'
                      lineage:
                        type: object
                        properties:
                          sourcePostId:
                            type:
                              - number
                              - 'null'
                            description: Tracked post it was adapted from.
                          sourceDraftId:
                            type:
                              - number
                              - 'null'
                          sourceAttribution:
                            type:
                              - string
                              - 'null'
                        required:
                          - sourcePostId
                          - sourceDraftId
                          - sourceAttribution
                      planning:
                        type: object
                        properties:
                          series:
                            type:
                              - string
                              - 'null'
                          pillar:
                            type:
                              - string
                              - 'null'
                          objective:
                            type:
                              - string
                              - 'null'
                          audience:
                            type:
                              - string
                              - 'null'
                          factualSources:
                            type: array
                            items:
                              type: string
                          notes:
                            type:
                              - string
                              - 'null'
                        required:
                          - series
                          - pillar
                          - objective
                          - audience
                          - factualSources
                          - notes
                      schedule:
                        type:
                          - object
                          - 'null'
                        properties:
                          publishingPostId:
                            type: number
                          scheduledVersion:
                            type: number
                          scheduledAt:
                            type: string
                          timezone:
                            type:
                              - string
                              - 'null'
                        required:
                          - publishingPostId
                          - scheduledVersion
                          - scheduledAt
                          - timezone
                      createdById:
                        type:
                          - number
                          - 'null'
                      updatedById:
                        type:
                          - number
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - draftId
                      - version
                      - status
                      - identity
                      - title
                      - text
                      - mentions
                      - attachments
                      - firstComment
                      - visibility
                      - postAsCompany
                      - companyUrn
                      - lineage
                      - planning
                      - schedule
                      - createdById
                      - updatedById
                      - createdAt
                      - updatedAt
                required:
                  - status
                  - message
                  - data
        '403':
          description: >-
            Social Selling is not enabled for this workspace. Ask your workspace
            admin to enable the feature.
        '404':
          description: >-
            Draft or identity not found in this workspace or outside the
            caller’s scope
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.