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

# Transfer chatbot

> Transfer a chatbot to another user in the same brand (reassign ownership). Provide email or userId. If the recipient has no account in the brand yet, one is created. By default the previous owner is removed from the chatbot; pass keepSourceAs to keep them as a member at that role. Requires the chatbot_transfer permission, held by SUPER_ADMIN members (the chatbot creator is always a SUPER_ADMIN).

Required scope: `chatbots:write`, `members:write`, `members:delete`.



## OpenAPI

````yaml openapi-v2.json POST /api/v2/chatbots/{chatbotId}/transfer
openapi: 3.1.0
info:
  title: SiteGPT Agent API
  version: 2.0.0
  description: >-
    Agent-facing API for managing SiteGPT chatbots, dashboard summaries,
    appearance media, knowledge, settings, conversations, leads, members,
    account profiles, usage, billing reads, and API tokens.
servers:
  - url: https://sitegpt.ai
security:
  - bearerAuth: []
tags:
  - name: Discovery
  - name: Onboarding
  - name: Account
  - name: Billing
  - name: Tokens
  - name: Chatbots
  - name: Knowledge
  - name: Knowledge Sync Jobs
  - name: Knowledge Sources
  - name: Custom Responses
  - name: Personas
  - name: Instructions
  - name: Settings
  - name: Conversation Starters
  - name: Conversation Followups
  - name: Members
  - name: Leads
  - name: Conversations
  - name: Messages
  - name: Tags
paths:
  /api/v2/chatbots/{chatbotId}/transfer:
    post:
      tags:
        - Chatbots
      summary: Transfer Chatbot
      description: >-
        Transfer a chatbot to another user in the same brand (reassign
        ownership). Provide email or userId. If the recipient has no account in
        the brand yet, one is created. By default the previous owner is removed
        from the chatbot; pass keepSourceAs to keep them as a member at that
        role. Requires the chatbot_transfer permission, held by SUPER_ADMIN
        members (the chatbot creator is always a SUPER_ADMIN).


        Required scope: `chatbots:write`, `members:write`, `members:delete`.
      operationId: transferChatbot
      parameters:
        - name: chatbotId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              anyOf:
                - required:
                    - email
                - required:
                    - userId
              properties:
                email:
                  type: string
                  format: email
                  description: >-
                    Email of the user to transfer ownership to. If no user with
                    this email exists in the brand yet, an account is
                    provisioned for them.
                userId:
                  type: string
                  description: >-
                    User id of the recipient. Use instead of email, or to
                    disambiguate. Must be a user in the same brand.
                keepSourceAs:
                  type: string
                  enum:
                    - AGENT
                    - MANAGER
                    - ADMIN
                    - SUPER_ADMIN
                  description: >-
                    If set, keep the previous owner as a member at this role
                    (ownership reassignment within a team). If omitted, the
                    previous owner is removed from the chatbot (full transfer).
      responses:
        '200':
          description: Successful SiteGPT API v2 response.
          content:
            application/json:
              schema:
                type: object
                required:
                  - ok
                  - data
                  - meta
                properties:
                  ok:
                    type: boolean
                    const: true
                  data:
                    type: object
                    additionalProperties: true
                    properties:
                      chatbot:
                        $ref: '#/components/schemas/GenericObject'
                  meta:
                    $ref: '#/components/schemas/AgentResponseMeta'
                additionalProperties: false
              example:
                ok: true
                data:
                  chatbot:
                    id: chatbot-id
                    name: Example chatbot
                    createdAt: '2026-05-13T00:00:00.000Z'
                meta:
                  requestId: request-id
        '400':
          $ref: '#/components/responses/AgentError'
        '401':
          $ref: '#/components/responses/AgentError'
        '403':
          $ref: '#/components/responses/AgentError'
        '404':
          $ref: '#/components/responses/AgentError'
        '405':
          $ref: '#/components/responses/AgentError'
      security:
        - bearerAuth:
            - chatbots:write
            - members:write
            - members:delete
components:
  schemas:
    GenericObject:
      type: object
      additionalProperties: true
    AgentResponseMeta:
      type: object
      required:
        - requestId
      properties:
        requestId:
          type: string
        warnings:
          type: array
          items:
            type: string
        nextCursor:
          type:
            - string
            - 'null'
      additionalProperties: true
    AgentError:
      type: object
      required:
        - ok
        - error
        - meta
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            details: {}
          additionalProperties: false
        meta:
          type: object
          required:
            - requestId
          properties:
            requestId:
              type: string
          additionalProperties: true
      additionalProperties: false
  responses:
    AgentError:
      description: SiteGPT agent API error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AgentError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: SiteGPT API token

````