uploadFile Method

  1. Purpose
  2. Request URL
  3. Request Parameters
  4. Java Code to Upload a file for a record
  5. PHP Code to Upload a file for a record
  6. Sample Response
  7. Data Storage Limits


You can use this method to attach files to records.

Request URL

XML Format:
https://recruit.zoho.com/recruit/private/xml/Candidates/uploadFile?authtoken=Auth Token&scope=recruitapi&id=Record Id&content=File Input Stream&type=Attachment Type&version=2

JSON Format:
https://recruit.zoho.com/recruit/private/json/Candidates/uploadFile?authtoken=Auth Token&scope=recruitapi&id=Record Id&content=File Input Stream&type=Attachment Type&version=2

Request Parameters

ParameterData TypeDescription
authtoken*StringEncrypted alphanumeric string to authenticate your Zoho credentials.
scope*StringSpecify the value as recruitapi.
id*StringSpecify the unique ID of the record to which the file has to be attached.
content*FileInputStreamPass the File Input Stream of the file.
type*StringSpecify the attachment type (E.g. Resume or Others).
version*IntegerUse version=2: This will fetch responses based on the latest API implementation.

* - Mandatory parameter


  1. The total file size should not exceed 20 MB.
  2. Your program can request only 15 uploadFile calls per 5 minutes. If API User requests more than 15 calls, system will block the API access for 15 min. 
  3. If the size exceeds 20 MB, you will receive the following error message: "File size should not exceed 20 MB".
  4. The attached file will be available under the Attachments section in the Record Details Page.
  5. Files can be attached to records in all modules except Reports, Dashboards, and Forecasts.

Java Code to Upload a file for a record

You can run this program in your Java Environment to upload a file to a record.

In the program, you need to specify values for the following:

  1. Your Auth Token
  2. The ID of the Record
  3. The uploadFile Request URL in the format mentioned above
  4. The File Path i.e the location of the File

import java.io.*;

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.methods.*;

import org.apache.commons.httpclient.methods.multipart.Part;

import org.apache.commons.httpclient.methods.multipart.FilePart;

import org.apache.commons.httpclient.methods.multipart.StringPart;

import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;

import org.apache.commons.httpclient.methods.multipart.PartSource;

import org.apache.commons.httpclient.methods.multipart.ByteArrayPartSource;


public class UploadFile 


      public static void main(String a[])




                  String auth_token = "USER AUTH TOKEN"; 

                  String auth_scope = "recruitapi";

                  String targetURL = "https://recruit.zoho.com/recruit/private/xml/Candidates/uploadFile";

                  String recordId = "RECORD ID";

                  String file = "FILE NAME

                  File f = new File(file);

                  FileInputStream fis = new FileInputStream(f);

                  ByteArrayOutputStream bos = new ByteArrayOutputStream();

                  int c;

                  while ((c = fis.read()) != -1)




                  byte[] fbArray = bos.toByteArray();

                  targetURL = targetURL + "?authtoken="+ auth_token +"&scope="+ auth_scope+"&version=2";

                  PartSource ps = new ByteArrayPartSource(file,fbArray);

                  PostMethod post =new PostMethod(targetURL);

                  Part[] fields = { new FilePart("content",ps), new StringPart("id", recordId), new StringPart("type", "Cover Letter") };

                  post.setRequestEntity(new MultipartRequestEntity(fields,post.getParams()));

                  HttpClient httpclient = new HttpClient();


                  String postResp = post.getResponseBodyAsString();

                  System.out.println("postResp===========> : "+postResp);


            catch(Exception e)







PHP Code to Upload a file for a record (for PHP versions 5.5 or higher)

$recordId="RECORD ID";
$cFile = new CURLFile('/home/path/to/my/file.pdf','application/pdf',")
curl_setopt($ch,CURLOPT_URL,"https://recruit.zoho.com/recruit/private/xml/Candidates/uploadFile?authtoken=<Your Authtoken>&scope=recruitapi&version=2&type=<attachment type>");
echo $response;


Sample Response

<?xml version="1.0" encoding="UTF-8" ?>
<response uri="/recruit/private/xml/Candidates/uploadFile">
            <message>File has been attached successfully</message>
                  <FL val="Id">335751000000578001</FL>
                  <FL val="Created Time">2012-06-20 14:57:34</FL>
                  <FL val="Modified Time">2012-06-20 14:57:34</FL>
                  <FL val="Created By"><![CDATA[krrish]]></FL>
                  <FL val="Modified By"><![CDATA[krrish]]></FL>


Data Storage Limits

Default storage limits for the organization are:

  1. Free Edition - 256 MB for the Org.
  2. Professional Edition - 256 MB for each user license
  3. Enterprise Edition - 512 MB for each user license

Extra file storage: USD 4/Month/GB

For the existing users, the revised pricing will be applicable from the next billing cycle.