Skip to content

Zoho Workdrive

Capability Support
rclone support tier Tier 3: Supported
Checksums None
Modification times Not kept: files show their upload time
Case-insensitive names No
Duplicate names allowed No
Server-side copy Yes
Server-side move and rename Yes
Folder move and rename Yes, in one step
Free space reporting Yes
Empty folders Yes
Change notifications No
Uploads of unknown size No
Public links No

Zoho WorkDrive is a cloud storage solution created by Zoho.

In CloudMount you add this drive from the Add drive screen, and the wizard asks for the options listed under Options. The notes below come from rclone’s setup guide.

Modified times are currently not supported for Zoho Workdrive

No hash algorithms are supported.

To view your current quota you can use the rclone about remote: command which will display your current usage.

Only control characters and invalid UTF-8 are replaced. In addition most Unicode full-width characters are not supported at all and will be removed from filenames during upload.

The wizard asks for these when you add the drive.

OAuth Client Id.

Leave blank normally.

Type: string

OAuth Client Secret.

Leave blank normally.

Type: string

Zoho region to connect to.

You’ll have to use the region your organization is registered in. If not sure use the same top level domain as you connect to in your browser.

Type: string

Choices:

  • com: United states / Global
  • eu: Europe
  • in: India
  • jp: Japan
  • com.cn: China
  • com.au: Australia

The wizard shows these under Advanced options. Most drives work without changing any of them.

OAuth Access Token as a JSON blob.

Type: string

Auth server URL.

Leave blank to use the provider defaults.

Type: string

Token server url.

Leave blank to use the provider defaults.

Type: string

Use client credentials OAuth flow.

This will use the OAUTH2 client Credentials Flow as described in RFC 6749.

Note that this option is NOT supported by all backends.

Type: bool · Default: false

ID of the root folder.

Leave blank normally.

Fill in to make rclone use a non root folder as its starting point.

Type: string

Cutoff for switching to large file upload api (>= 10 MiB).

Type: SizeSuffix · Default: 10Mi

Max number of API transactions per second.

Zoho WorkDrive rate limits its API and returns HTTP 429 (error F7008, “Request rate limit exceeded”) when called too quickly, so the data API calls (list, upload, download, copy, move, delete) are paced to this rate.

Set to 0 to disable the cap, matching the global –tpslimit; pacing still can’t be turned off entirely because backoff and Retry-After always apply.

The default of 6 is a safe sustainable rate. Higher values can trigger long 429 Retry-After stalls that make throughput WORSE, so raise it only if your account tolerates more.

Type: float64 · Default: 6

Number of API calls to allow back-to-back without sleeping, for –zoho-tpslimit.

This is the token-bucket capacity. Keep at 1 for Zoho: a burst > 1 lets several calls fire at once after an idle gap, which can trigger synchronized clusters of 429 errors.

Type: int · Default: 1

Max listings of the SAME folder allowed per –zoho-list-folder-window.

Zoho WorkDrive rate limits its listing API (GET files/{id}/files) PER folder, independently of –zoho-tpslimit: listing one folder too often in a short time returns HTTP 429 (error F7008) with a multi-minute Retry-After penalty, which a tight polling loop can hit even at a low overall rate. Measured live, Zoho allows ~19 listings of one folder in any rolling ~60s window and the 20th fails, which the defaults (19 per 60s) model exactly.

This is a true per-window cap for any traffic pattern: each window starts with –zoho-list-folder-burst listings passing back-to-back (the burst re-arms at every window boundary) and the rest are spaced –zoho-list-folder-window/(limit - burst) apart (the defaults give ~4.6s), while a sliding log of recent listings enforces the cap across window boundaries. 0 disables the limiter. Only REPEATED listings of one folder are delayed; different folders, or a folder listed fewer than –zoho-list-folder-burst times, never are.

A HIGHER value means MORE listings per window, not more safety: raising it above 19 trips F7008. Lower it for a wider margin at the cost of listing responsiveness.

Type: int · Default: 19

The window for –zoho-list-folder-limit.

The default of 60s (shown as 1m0s) matches Zoho’s real sliding window: at most –zoho-list-folder-limit listings of one folder are allowed in any window of this length. A bare number is parsed as seconds (“60” = “60s”).

Widen it (or lower the limit) for a bigger safety margin; the sustained spacing between same-folder listings is window/(limit - burst).

Type: Duration · Default: 1m0s

Same-folder listings allowed back-to-back before –zoho-list-folder-limit paces them.

The burst is carved out of –zoho-list-folder-limit, so raising it never raises the per-window total: this many listings may fire immediately and the remaining limit - burst are spaced window/(limit - burst) apart. The burst RE-ARMS at every window boundary, so sustained re-listing gets a fresh burst each window while a sliding log of recent listings still enforces the per-window cap. A folder listed only a handful of times (the common case - a sync re-listing one directory a few times then moving on) never waits.

The default 6 is the largest burst validated live under the default 19-per-60s cap (bursts of 4, 5 and 6 all ran clean; an over-cap probe tripped F7008 exactly at the 20th listing in a window). Keep it well below ~15 - Zoho also has an instantaneous back-to-back cap around 15-16 regardless of the window. Set to 1 to pace from the second listing. Values >= the limit are clamped to limit - 1.

Type: int · Default: 6

The encoding for the backend.

See the encoding section in the overview for more info.

Type: Encoding · Default: Del,Ctl,InvalidUtf8

Description of the remote.

Type: string

For Zoho we advise you to set up your own client_id. To do so you have to complete the following steps.

  1. Log in to the Zoho API Console

  2. Create a new client of type “Server-based Application”. The name and website don’t matter, but you must add the redirect URL http://localhost:53682/.

  3. Once the client is created, you can go to the settings tab and enable it in other regions.

The client id and client secret can now be used with rclone.