---
title: "Move folder to a different parent"
method: POST
path: "/drive_folders/move_folder"
tags: ["Drive Folders"]
---

# Move folder to a different parent

`POST /drive_folders/move_folder`

Move a folder (and all its sub-folders) under a new parent folder.

## Request body

- object
  - `folder_to_move_id` integer, required — ID of the folder to move
  - `destination_parent_folder_id` integer, required — ID of the destination parent folder

## Response `200`

Folder moved successfully (response includes updated destination parent folder)

- object
  - `data` DriveFolderWithFiles — Drive folder including nested sub-folders and files
    - `id` integer
    - `name` string
    - `client_visible` boolean
    - `entity_id` integer, nullable
    - `path` string
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `parent_folder` DriveFolder — Drive folder (shallow representation)
      - `id` integer
      - `name` string
      - `client_visible` boolean
      - `entity_id` integer, nullable
      - `path` string — Full path to the folder from the root (e.g. "/Root/2024/Client")
      - `created_at` string, date-time
      - `updated_at` string, date-time
    - `entity` EntityExtended — Full representation of an entity, including tags, contacts, and projects. Returned by GET /entities/{id}, GET /entities?extended_view=true, and the link_contact / link_project endpoints.
      - `id` integer
      - `client_id_number` string
      - `name` string
      - `entity_type` string
      - `metadata` object — Additional metadata for the entity, contents may vary
      - `ein` string — Employer Identification Number (EIN)
      - `other_ids` object — Other identifying information, contents may vary
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `tags` Tag[] — Tags applied to this entity
        - `id` integer
        - `name` string
      - `primary_contact` EntityContactExtended
        - `id` integer
        - `first_name` string
        - `last_name` string
        - `nick_name` string
        - `company` string
        - `job_title` string
        - `client_id_number` string
        - `created_at` string, date-time
        - `updated_at` string, date-time
        - `tags` Tag[]
          - `id` integer
          - `name` string
        - `contact_emails` ContactEmail[]
          - `id` integer
          - `email` string
          - `primary` boolean
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `contact_phones` ContactPhone[]
          - `id` integer
          - `phone_number` string
          - `country_code` string
          - `country_phone_code` string
          - `phone_type` 'mobile' | 'home' | 'work' | 'fax' | 'office' | 'other'
          - `primary` boolean
          - `metadata` object
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `contact_addresses` ContactAddress[]
          - `id` integer
          - `street_address` string
          - `city` string
          - `state` string
          - `zip` string
          - `primary` boolean
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `entity_origins` Entity[]
          - `id` integer
          - `client_id_number` string
          - `name` string
          - `entity_type` string
          - `metadata` object — Additional metadata for the entity, contents may vary
          - `ein` string — Employer Identification Number (EIN)
          - `other_ids` object — Other identifying information, contents may vary
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `effective_email` EffectiveEmail, nullable — The email to use for this contact in the containing entity or project context. Falls back to the contact's global primary email.
          - `id` integer
          - `email` string, email
          - `overridden` boolean — Whether an entity-level override selected this email.
          - `source` 'manual' | 'cch_axcess' | 'null', nullable — Source of the entity-level override, or null when using the global primary email.
      - `contacts` EntityContactExtended[] — List of contacts associated with this entity
        - `id` integer
        - `first_name` string
        - `last_name` string
        - `nick_name` string
        - `company` string
        - `job_title` string
        - `client_id_number` string
        - `created_at` string, date-time
        - `updated_at` string, date-time
        - `tags` Tag[]
          - `id` integer
          - `name` string
        - `contact_emails` ContactEmail[]
          - `id` integer
          - `email` string
          - `primary` boolean
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `contact_phones` ContactPhone[]
          - `id` integer
          - `phone_number` string
          - `country_code` string
          - `country_phone_code` string
          - `phone_type` 'mobile' | 'home' | 'work' | 'fax' | 'office' | 'other'
          - `primary` boolean
          - `metadata` object
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `contact_addresses` ContactAddress[]
          - `id` integer
          - `street_address` string
          - `city` string
          - `state` string
          - `zip` string
          - `primary` boolean
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `entity_origins` Entity[]
          - `id` integer
          - `client_id_number` string
          - `name` string
          - `entity_type` string
          - `metadata` object — Additional metadata for the entity, contents may vary
          - `ein` string — Employer Identification Number (EIN)
          - `other_ids` object — Other identifying information, contents may vary
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `effective_email` EffectiveEmail, nullable — The email to use for this contact in the containing entity or project context. Falls back to the contact's global primary email.
          - `id` integer
          - `email` string, email
          - `overridden` boolean — Whether an entity-level override selected this email.
          - `source` 'manual' | 'cch_axcess' | 'null', nullable — Source of the entity-level override, or null when using the global primary email.
      - `projects` ProjectExtended[] — List of projects associated with this entity
        - `id` integer
        - `name` string
        - `tax_year` integer, nullable — Four-digit year parsed from the project name, or null if the name contains no recent year.
        - `idempotency_key` string
        - `metadata` object
        - `due_date` string, date-time
        - `reminder_schedule_name` string, nullable — Name of the project's reminder schedule, or null if none is set.
        - `assignees` AssigneeWithContact[]
          - `id` integer
          - `display_name` string
          - `name` string
          - `email` string, nullable — Contact's global primary email, or null if the contact has none.
          - `magic_link` string — Assignee's magic upload URL.
          - `contact` EntityContactSummary — Summary representation of a contact. Scalar attributes only — no emails, phones, addresses, tags, or linked entities. Use GET /contacts/{contact_id} for the ContactExtended representation that includes those.
            - `id` integer
            - `first_name` string
            - `last_name` string
            - `nick_name` string
            - `company` string
            - `job_title` string
            - `client_id_number` string
            - `created_at` string, date-time
            - `updated_at` string, date-time
            - `effective_email` EffectiveEmail, nullable — The email to use for this contact in the containing entity or project context. Falls back to the contact's global primary email.
              - …
        - `tasks` Task[]
          - `id` integer
          - `name` string — Name of the task
          - `description` string — Description of the task - supports limited subset of HTML &lt;b&gt;, &lt;ul&gt;, &lt;li&gt;, &lt;br&gt;, and &lt;a&gt;.
          - `status` 'to_do' | 'pending_review' | 'approved' — Status of the task
        - `user` User
          - `id` integer
          - `email` string
          - `first_name` string
          - `last_name` string
          - `idempotency_key` string, nullable
        - `tags` Tag[]
          - `id` integer
          - `name` string
        - `entity` Entity — Summary representation of an entity. Contains scalar attributes only — no contacts, projects, or tags. Use GET /entities/{id}, or GET /entities?extended_view=true, for the EntityExtended representation that includes those associations.
          - `id` integer
          - `client_id_number` string
          - `name` string
          - `entity_type` string
          - `metadata` object — Additional metadata for the entity, contents may vary
          - `ein` string — Employer Identification Number (EIN)
          - `other_ids` object — Other identifying information, contents may vary
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `project_status` ProjectStatus
          - `id` integer
          - `name` string
          - `position` integer
    - `sub_folders` DriveFolder[]
      - `id` integer
      - `name` string
      - `client_visible` boolean
      - `entity_id` integer, nullable
      - `path` string — Full path to the folder from the root (e.g. "/Root/2024/Client")
      - `created_at` string, date-time
      - `updated_at` string, date-time
    - `files` DriveFolderFile[] — Files in this folder
      - `attachment_id` integer — ID of the file attachment
      - `blob_id` integer — ID of the underlying ActiveStorage blob
      - `filename` string
      - `content_type` string
      - `byte_size` integer
      - `temporary_download_url` string, uri, nullable — Temporary pre-signed URL to download the file. Valid for a short period (e.g. 10 minutes).
      - `client_visible` boolean — Whether the file is visible to clients in their portal
      - `created_at` string, date-time

## Other responses

- `400` — Folder to move or destination parent folder not found, or drive not activated

---

[API](https://skmtc.net/gettruss/apis/api-v1.md) · [All operations](https://skmtc.net/gettruss/apis/api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gettruss/api-v1/versions/7c956b3d1bdf/schema)
