Upload Large File >250MB

Open in ChatGPT Open in ChatGPT to ask questions about this page
Open in Claude Open in Claude to ask questions about this page
Copy as MarkdownCopy this page as markdown to use with AI assistants
View as Markdown Open this page as markdown in a new tab

By using Upload Server API, you can upload large files of size up to 50 GB based on your WorkDrive edition. In stream mode, files will automatically be split into many small parts and uploaded to the server. The API response will only have details of the successfully uploaded files. To check the failure status of files, you have to use the Upload Progress API.

The various domains and their respective upload server domain URLs are:

  1. US: https://upload.zoho.com
  2. AU: https://upload.zoho.com.au
  3. EU: https://upload.zoho.eu
  4. IN: https://upload.zoho.in
  5. CN: https://upload.zoho.com.cn
  6. JP: https://upload.zoho.jp
  7. UAE: https://files.zoho.ae
  8. CA: https://upload.zohocloud.ca
  9. SA: https://files.zoho.sa


Note:

  • We have to send the file content in request body as binary.

  • We have code samples for this API in multiple programming languages.See code samples

  • We recommend using Chunk File Upload API for files greater than 1 GB in size.

  • <a href='Getting Started Filters' class='zen-ref'>refer here</a>

Endpoints

OAuth Scope

WorkDrive.files.CREATEZohoFiles.files.CREATECopied!

Request Example

cURL
cURL
Deluge
Copied!
curl --request POST \
  --url https://upload.zoho.com/workdrive-api/v1/stream/upload \
  --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
  --header 'upload-id: SOME_STRING_VALUE' \
  --header 'x-filename: SOME_STRING_VALUE' \
  --header 'x-parent_id: SOME_STRING_VALUE' \
  --header 'x-streammode: SOME_STRING_VALUE'

Headers

x-filenamestring(Required)

The name of the file should be URL encoded with UTF-8 Charset.

x-parent_idstring(Required)

The unique ID of the folder where files are to be uploaded.

upload-idstring(Required)

unique string - for processing each upload.

x-override-name-existstring(Optional)

If set as "true", a file with the matching name will be uploaded as a top version over the existing file.
If set as "false", a file with the matching name will have the timestamp added to it on upload.

x-streammodestring(Required)

Default value 1 - for stream mode.

Response Example

D9236

D9236

D9237

D9202

D9218

D9234

D9244

D9244

D9233

D9245

D9235

D9238

D9231

D9231

D9222

D9200

D9201

D9223

D9214

D9239

D9219

D9220

D9211

D9221

200
200
400
404
409
410
412
417
423
507
509
Copied!
  {
    "initParameterNames": {},
    "servletContext": {
      "initParameterNames": {},
      "virtualServerName": "string",
      "classLoader": {
        "parent": {},
        "unnamedModule": {
          "declaredAnnotations": [
            {}
          ],
          "named": true,
          "classLoader": {},
          "name": "string",
          "annotations": [
            {}
          ],
          "descriptor": {
            "automatic": true,
            "open": true
          },
          "packages": [
            "string"
          ],
          "layer": {}
        },
        "name": "string",
        "registeredAsParallelCapable": true,
        "definedPackages": [
          {
            "specificationVendor": "string",
            "declaredAnnotations": [
              null
            ],
            "specificationTitle": "string",
            "implementationVersion": "string",
            "sealed": true,
            "name": "string",
            "implementationVendor": "string",
            "annotations": [
              null
            ],
            "implementationTitle": "string",
            "specificationVersion": "string"
          }
        ]
      },
      "filterRegistrations": {
        "property1": {
          "initParameters": {
            "property1": "string",
            "property2": "string"
          },
          "name": "string",
          "className": "string",
          "servletNameMappings": [
            "string"
          ],
          "urlPatternMappings": [
            "string"
          ]
        },
        "property2": {
          "initParameters": {
            "property1": "string",
            "property2": "string"
          },
          "name": "string",
          "className": "string",
          "servletNameMappings": [
            "string"
          ],
          "urlPatternMappings": [
            "string"
          ]
        }
      },
      "servletNames": {},
      "contextPath": "string",
      "defaultSessionTrackingModes": [
        "COOKIE"
      ],
      "majorVersion": 0,
      "sessionCookieConfig": {
        "path": "string",
        "maxAge": 0,
        "domain": "string",
        "name": "string",
        "comment": "string",
        "httpOnly": true,
        "secure": true
      },
      "effectiveMinorVersion": 0,
      "effectiveSessionTrackingModes": [
        "COOKIE"
      ],
      "attributeNames": {},
      "servletRegistrations": {
        "property1": {
          "initParameters": {
            "property1": "string",
            "property2": "string"
          },
          "mappings": [
            "string"
          ],
          "runAsRole": "string",
          "name": "string",
          "className": "string"
        },
        "property2": {
          "initParameters": {
            "property1": "string",
            "property2": "string"
          },
          "mappings": [
            "string"
          ],
          "runAsRole": "string",
          "name": "string",
          "className": "string"
        }
      },
      "serverInfo": "string",
      "jspConfigDescriptor": {
        "jspPropertyGroups": [
          {
            "elIgnored": "string",
            "isXml": "string",
            "errorOnUndeclaredNamespace": "string",
            "trimDirectiveWhitespaces": "string",
            "scriptingInvalid": "string",
            "urlPatterns": [
              null
            ],
            "pageEncoding": "string",
            "includePreludes": [
              null
            ],
            "buffer": "string",
            "deferredSyntaxAllowedAsLiteral": "string",
            "defaultContentType": "string",
            "includeCodas": [
              null
            ]
          }
        ],
        "taglibs": [
          {
            "taglibLocation": "string",
            "taglibURI": "string"
          }
        ]
      },
      "servlets": {},
      "requestCharacterEncoding": "string",
      "responseCharacterEncoding": "string",
      "sessionTimeout": 0,
      "minorVersion": 0,
      "servletContextName": "string",
      "effectiveMajorVersion": 0
    },
    "servletConfig": {
      "initParameterNames": {},
      "servletContext": {
        "initParameterNames": {},
        "virtualServerName": "string",
        "classLoader": {
          "parent": {},
          "unnamedModule": {
            "declaredAnnotations": [
              null
            ],
            "named": true,
            "classLoader": {},
            "name": "string",
            "annotations": [
              null
            ],
            "descriptor": {},
            "packages": [
              null
            ],
            "layer": {}
          },
          "name": "string",
          "registeredAsParallelCapable": true,
          "definedPackages": [
            {
              "declaredAnnotations": [],
              "annotations": []
            }
          ]
        },
        "filterRegistrations": {
          "property1": {
            "initParameters": {},
            "name": "string",
            "className": "string",
            "servletNameMappings": [
              null
            ],
            "urlPatternMappings": [
              null
            ]
          },
          "property2": {
            "initParameters": {},
            "name": "string",
            "className": "string",
            "servletNameMappings": [
              null
            ],
            "urlPatternMappings": [
              null
            ]
          }
        },
        "servletNames": {},
        "contextPath": "string",
        "defaultSessionTrackingModes": [
          "COOKIE"
        ],
        "majorVersion": 0,
        "sessionCookieConfig": {
          "path": "string",
          "maxAge": 0,
          "domain": "string",
          "name": "string",
          "comment": "string",
          "httpOnly": true,
          "secure": true
        },
        "effectiveMinorVersion": 0,
        "effectiveSessionTrackingModes": [
          "COOKIE"
        ],
        "attributeNames": {},
        "servletRegistrations": {
          "property1": {
            "initParameters": {},
            "mappings": [
              null
            ],
            "runAsRole": "string",
            "name": "string",
            "className": "string"
          },
          "property2": {
            "initParameters": {},
            "mappings": [
              null
            ],
            "runAsRole": "string",
            "name": "string",
            "className": "string"
          }
        },
        "serverInfo": "string",
        "jspConfigDescriptor": {
          "jspPropertyGroups": [
            {
              "urlPatterns": [],
              "includePreludes": [],
              "includeCodas": []
            }
          ],
          "taglibs": [
            {}
          ]
        },
        "servlets": {},
        "requestCharacterEncoding": "string",
        "responseCharacterEncoding": "string",
        "sessionTimeout": 0,
        "minorVersion": 0,
        "servletContextName": "string",
        "effectiveMajorVersion": 0
      },
      "servletName": "string"
    },
    "servletInfo": "string",
    "servletName": "string"
  }
                
  {
    "errors": [
      {
        "id": "D9236",
        "title": "File extension is on the blocked list"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9237",
        "title": "File extension not in org-allowed list"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9202",
        "title": "File size exceeds the allowed limit"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9218",
        "title": "Duplicate filename with no override"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9234",
        "title": "Chunk upload session timed out"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9244",
        "title": "Camera upload device folder not found"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9233",
        "title": "Chunk uploaded out of sequence"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9245",
        "title": "Invalid camera upload device folder"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9235",
        "title": "Chunk MD5 checksum does not match"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9238",
        "title": "Same chunk uploaded more than once"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9231",
        "title": "Upload partially completed"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9222",
        "title": "MyFolder storage restricted"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9200",
        "title": "Unhandled / unknown upload error"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9201",
        "title": "No file content found"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9223",
        "title": "Team folder library storage limit exceeded"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9214",
        "title": "Bad input - missing folder/resource ID"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9239",
        "title": "OnBehalf user is not a member of the org"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9219",
        "title": "Permission denied"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9220",
        "title": "File locked by another user"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9211",
        "title": "Org storage quota exceeded"
      }
    ]
  }
                
  {
    "errors": [
      {
        "id": "D9221",
        "title": "MyFolder storage quota exceeded"
      }
    ]
  }
                
Show full