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

# Reuse a Social Selling post as a draft

> Starts a draft for an identity from a tracked post (yours or a teammate’s): its text (or your adapted `text`), its media copied into the workspace (each copy keeps the source post and credit), and an attribution (default: the source author and URL). The source post is never modified and nothing is published across teammates. Media that cannot be copied is listed in `skippedMedia` with the reason.

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



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json post /v1/social-selling/posts/{postId}/reuse
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/posts/{postId}/reuse:
    post:
      tags:
        - Social Selling
      summary: Reuse a Social Selling post as a draft
      description: >-
        Starts a draft for an identity from a tracked post (yours or a
        teammate’s): its text (or your adapted `text`), its media copied into
        the workspace (each copy keeps the source post and credit), and an
        attribution (default: the source author and URL). The source post is
        never modified and nothing is published across teammates. Media that
        cannot be copied is listed in `skippedMedia` with the reason.

            > **Required scope:** `SOCIAL_SELLING_WRITE`
            >
            > **Rate limit:** 30 requests per minute
      parameters:
        - schema:
            type: integer
            exclusiveMinimum: 0
            description: Tracked post id to reuse.
          required: true
          description: Tracked post id to reuse.
          name: postId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                identityId:
                  type: integer
                  exclusiveMinimum: 0
                  description: Identity the draft is for.
                text:
                  type: string
                  maxLength: 3000
                  description: >-
                    The adapted text. Defaults to the source text (adapt it
                    before publishing).
                includeMedia:
                  type: boolean
                  description: Copy the post’s media into the draft. Default true.
                sourceAttribution:
                  type: string
                  maxLength: 200
              required:
                - identityId
      responses:
        '201':
          description: The new draft and the media that could not be copied
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      draft:
                        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
                      skippedMedia:
                        type: array
                        items:
                          type: object
                          properties:
                            assetId:
                              type: string
                            reason:
                              type: string
                          required:
                            - assetId
                            - reason
                        description: >-
                          Source media that could not be copied, with the
                          reason.
                    required:
                      - draft
                      - skippedMedia
                required:
                  - status
                  - message
                  - data
        '400':
          description: '`INVALID_DRAFT` (e.g. no text and no copyable media)'
        '403':
          description: >-
            Social Selling is not enabled for this workspace. Ask your workspace
            admin to enable the feature.
        '404':
          description: >-
            Post 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.