---
title: "Copy source to destination"
method: POST
path: "/sync/copy"
---

# Copy source to destination

`POST /sync/copy`

Copies objects from a source remote to a destination remote without deleting destination files.

## Query parameters

- `srcFs` string
- `dstFs` string
- `createEmptySrcDirs` boolean
- `_config` string
- `_filter` string
- `_group` string
- `_async` boolean

## Headers

- `Prefer` 'respond-async'

## Request body

- SyncCopyRequest
  - `srcFs` string — Source remote path to copy from.
  - `dstFs` string — Destination remote path to copy to.
  - `createEmptySrcDirs` boolean — Set to true to replicate empty source directories on the destination.
  - `_config` string — JSON encoded config overrides applied for this call only.
  - `_filter` string — JSON encoded filter overrides applied for this call only.
  - `_group` string — Assign the request to a custom stats group.
  - `_async` boolean — Run the command asynchronously. Returns a job id immediately.

## Response `200`

Request succeeded returning an empty JSON object.

- object

## Other responses

- `202` — Request accepted for async processing. Poll /job/status with the returned jobid.
- `4XX` — Any error response (HTTP 4xx/5xx)
- `5XX` — Any error response (HTTP 4xx/5xx)

## Changes

- **2026-08-19** `638e349833a9` — 1 info
  - added the required property `executeId` to the response with the `202` status
- **2026-07-12** `fdf1b1fc77fe` — 1 breaking
  - removed the required property `executeId` from the response with the `202` status
- **2026-07-12** `842fb2d927ae` — 1 info
  - added the required property `executeId` to the response with the `202` status
- **2026-06-05** `2849bf2803ce` — 1 warning, 2 info
  - removed the optional property `jobid` from the response with the `200` status
  - added the new optional `header` request parameter `Prefer`
  - added the success response with the status `202`
- **2026-04-11** `86281b9ee38c` — 4 info
  - the `query` request parameter `dstFs` became optional
  - the `query` request parameter `srcFs` became optional
  - the request property `dstFs` became optional
  - the request property `srcFs` became optional

[Full history](https://skmtc.dev/rclone/apis/rclone-rc-api/changes/sync/copy/post.md)

---

[API](https://skmtc.dev/rclone/apis/rclone-rc-api.md) · [All operations](https://skmtc.dev/rclone/apis/rclone-rc-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rclone/rclone-rc-api/revisions/adc0c129da4f/schema)
