---
title: "Bidirectional sync"
method: POST
path: "/sync/bisync"
---

# Bidirectional sync

`POST /sync/bisync`

Performs a bidirectional synchronisation between two paths, supporting safety checks and recovery options.

## Query parameters

- `path1` string
- `path2` string
- `dryRun` boolean
- `resync` boolean
- `checkAccess` boolean
- `checkFilename` string
- `maxDelete` number
- `force` boolean
- `checkSync` boolean
- `createEmptySrcDirs` boolean
- `removeEmptyDirs` boolean
- `filtersFile` string
- `ignoreListingChecksum` boolean
- `resilient` boolean
- `workdir` string
- `backupdir1` string
- `backupdir2` string
- `noCleanup` boolean
- `_config` string
- `_filter` string
- `_group` string
- `_async` boolean

## Headers

- `Prefer` 'respond-async'

## Request body

- SyncBisyncRequest
  - `path1` string — First remote directory, e.g. `drive:path1`.
  - `path2` string — Second remote directory, e.g. `drive:path2`.
  - `dryRun` boolean — Set to true to simulate the bisync run without making changes.
  - `resync` boolean — Set to true to perform a one-time resync, rebuilding bisync history.
  - `checkAccess` boolean — Set to true to abort if `RCLONE_TEST` files are missing on either side.
  - `checkFilename` string — Override the access-check sentinel filename; defaults to `RCLONE_TEST`.
  - `maxDelete` number — Abort the run if deletions exceed this percentage (default 50).
  - `force` boolean — Set to true to bypass the `maxDelete` safety check.
  - `checkSync` boolean — Controls final listing comparison; leave true for normal verification or set false to skip.
  - `createEmptySrcDirs` boolean — Set to true to mirror empty directories between the two paths.
  - `removeEmptyDirs` boolean — Set to true to remove empty directories during cleanup.
  - `filtersFile` string — Path to an rclone filters file applied to both paths.
  - `ignoreListingChecksum` boolean — Set to true to ignore checksum differences when comparing listings.
  - `resilient` boolean — Set to true to allow retrying after certain recoverable errors.
  - `workdir` string — Directory path used to store bisync working files.
  - `backupdir1` string — Backup directory on the first remote for changed files.
  - `backupdir2` string — Backup directory on the second remote for changed files.
  - `noCleanup` boolean — Set to true to keep bisync working files after completion.
  - `_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`

Bisync completed with session details.

- object
  - `output` string, required — Captured output from the bisync operation.
  - `session` string, required — Session name derived from the two filesystems.
  - `workDir` string, required — Absolute path to the bisync working directory.
  - `basePath` string, required — Base path for listing files.
  - `listing1` string, required — Path to the Path1 listing file.
  - `listing2` string, required — Path to the Path2 listing file.
  - `logFile` string, required — Path to the log file.

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

---

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