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

# Duplicate template

> Makes a copy of a template.



## OpenAPI

````yaml /openapi.json post /templates/{id}/duplicate
openapi: 3.1.0
info:
  title: ReachHunt API
  version: 1.0.0
  description: >-
    The ReachHunt API gives your own apps and scripts programmatic access to
    your workspace: accounts, campaigns, lead lists, conversations, messages,
    tags and statuses.


    Send your API key in the `Authorization` header: `Authorization: Bearer
    YOUR_API_KEY`. The key decides the workspace, so no path or parameter names
    one.


    Every response has the same envelope: `{ "status": true, "data": ...,
    "error": null }`.
servers:
  - url: https://api.reachhunt.ai/api/v1
    description: Production
security: []
tags:
  - name: Workspaces
    description: Your workspace and the people in it.
  - name: Accounts
    description: The X and LinkedIn accounts you connected.
  - name: Analytics
    description: Activity over time.
  - name: Credits
    description: AI credits and how they were used.
  - name: Campaigns
    description: Outreach that messages your leads step by step.
  - name: Agents
    description: AI agents that reply to your leads.
  - name: Tags
    description: Labels you put on conversations.
  - name: Statuses
    description: Pipeline stages you put conversations in.
  - name: Leads
    description: The people in your lead lists.
  - name: Lead lists
    description: Lists of people you collect to message.
  - name: Conversations
    description: The conversations in your inbox.
  - name: Messages
    description: The messages in a conversation.
  - name: Conversation details
    description: Your team's record of the person in a conversation.
  - name: Internal notes
    description: Notes only your team sees.
  - name: Scheduled messages
    description: Messages set to send later.
  - name: Templates
    description: Saved messages you can reuse.
  - name: Webhook events
    description: What each event sends.
paths:
  /templates/{id}/duplicate:
    post:
      tags:
        - Templates
      summary: Duplicate template
      description: Makes a copy of a template.
      operationId: templates.duplicate
      parameters:
        - name: id
          in: path
          required: true
          description: The template ID.
          schema:
            type: string
      responses:
        '200':
          description: 'OK. Check `status`: errors the API handles itself also return 200.'
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - data
                  - error
                properties:
                  status:
                    type: boolean
                    description: '`true` when the request succeeded.'
                  data:
                    type: object
                    properties:
                      template:
                        $ref: '#/components/schemas/Template'
                    required:
                      - template
                  error:
                    type: 'null'
                    description: Always `null` on success.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PlanRequired'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - bearerAuth: []
components:
  schemas:
    Template:
      type: object
      properties:
        id:
          type: string
          description: The ID.
        platform:
          $ref: '#/components/schemas/Platform'
        name:
          type: string
          description: The name.
        variants:
          type: array
          items:
            type: string
            description: Message versions. One is picked for each person.
          description: Message versions. One is picked for each person.
        attachment:
          type:
            - object
            - 'null'
          additionalProperties: true
          description: The attached file. `null` when none.
        createdBy:
          type: string
          description: The teammate who made it.
        createdByName:
          type: string
          description: The name of the teammate who made it.
        isMine:
          type: boolean
          description: Whether you made it.
        usedCount:
          type: integer
          description: How many times it was used.
        lastUsedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: When it was last used.
        updatedAt:
          type: string
          format: date-time
          description: When it last changed, in ISO 8601 UTC.
      required:
        - id
        - platform
        - name
        - variants
        - attachment
        - createdBy
        - createdByName
        - isMine
        - usedCount
        - lastUsedAt
        - updatedAt
      description: A saved message you can reuse.
    Platform:
      type: string
      enum:
        - x
        - linkedin
      description: The network the item belongs to.
      examples:
        - linkedin
    Failure:
      type: object
      required:
        - status
        - data
        - error
      properties:
        status:
          type: boolean
          description: Always `false` for an error.
        data:
          type: 'null'
          description: Always `null` for an error.
        error:
          type: string
          description: What went wrong, in plain words.
  responses:
    Unauthorized:
      description: The API key is missing or not valid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Failure'
          example:
            status: false
            data: null
            error: Not authenticated
    PlanRequired:
      description: The workspace has no active plan, or its trial has ended.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Failure'
          example:
            status: false
            data: null
            error: Your free trial has ended. Pick a plan to continue.
    ServerError:
      description: Something failed on our side. Try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Failure'
          example:
            status: false
            data: null
            error: Something went wrong. Please try again.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: Bearer
      description: >-
        Your API key, sent as `Authorization: Bearer YOUR_API_KEY`. Create one
        in **Settings → API**.
      x-default: Bearer YOUR_API_KEY

````

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