Upload Progress
In Upload API (Stream mode), proper error responses will not be shown. You can use the Upload Progress API to get proper error responses using the upload-id value. You can also check if the file upload is in progress or completed. If the upload is completed, you will get a success status with details of the uploaded file.
Note:
If the filename already exists, a duplicate name will be generated automatically.
Based on the status code in response, you can monitor the upload status of files.
Upload Status codes:
D201 - Upload completed successfully.
D9200 - Upload Failed. Unknown error occurred.
D9201 - Upload Failed. File is empty (0 byte).
D9211 - Upload Failed. Storage limit exceeded in your WorkDrive account.
D9214 - Upload Failed. Invalid Parent ID.
D9217 - Upload in Progress.
D9219 - Upload Failed. Invalid credentials or no permission to upload.
D9102 - Upload Incomplete. Network error occurred or User canceled the upload.
Endpoints
OAuth Scope
curl --request GET \
--url 'https://www.zohoapis.com/workdrive/uploadprogress?uploadid=upload_{ZohoUserID}_{upload-id_in_upload_larger_file_API}' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Query Parameters
Note:
Query parameter name should be URL encoded with UTF-8 Charset. For more info, refer here
unique string which for processing upload
Format: "upload_" + {Zoho User ID} + "_" + {upload-id in upload larger file API}
{
"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": "R008",
"title": "Unauthorized access"
}
]
}
{
"errors": [
{
"id": "F000",
"title": "General exception"
}
]
}
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.