Request Details

Request URL

https://www.zohoapis.com/crm/v2/settings/variables?ids={variable_id1, variable_id2, variable_id3}

To delete a specific variable:
https://www.zohoapis.com/crm/v2/settings/variables/{variable_id}

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

scope=ZohoCRM.settings.variables.{operation_type}

Possible operation types

ALL - Full access to variable data
DELETE - Delete variable data

Parameters

  • idsstring, mandatory when deleting multiple variables

    Specify comma separated variable IDs.

Sample Request

Copiedcurl "https://www.zohoapis.com/crm/v2/settings/variables?ids=40000000047007,40000000047009,40000000047010"
-X DELETE
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
3.0.08.0
CopiedArrayList<Long> variableIds = new ArrayList<Long>(Arrays.asList(3477061000006211003L,3477061000006211001L));

//Get instance of VariablesOperations Class
VariablesOperations variablesOperations = new VariablesOperations();

//Get instance of ParameterMap Class
ParameterMap paramInstance = new ParameterMap();

for (Long variableId: variableIds) {
    paramInstance.add(DeleteVariablesParam.IDS, variableId);
}

//Call deleteVariables method that takes paramInstance as parameter
APIResponse < ActionHandler > response = variablesOperations.deleteVariables(paramInstance);
Copiedimport javax.net.ssl.SSLContext;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
public class DeleteVariables 
{
	private static void deleteVariables()
	{
		try
		{
			HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
			SSLContext sslContext = SSLContext.getDefault();
			SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
			CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
			URIBuilder uriBuilder = new URIBuilder("https://www.zohoapis.com/crm/v2/settings/variables");
			uriBuilder.addParameter("ids", "34770617671012,34770617773001,34770617773003");
			HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
			requestObj.addHeader("Authorization", "Zoho-oauthtoken 1000.xxxxxxx.xxxxxxx");
			HttpResponse response = httpclient.execute(requestObj);
			HttpEntity responseEntity = response.getEntity();
			System.out.println("HTTP Status Code : " + response.getStatusLine().getStatusCode());
			if(responseEntity != null)
			{
				Object responseObject = EntityUtils.toString(responseEntity);
				String responseString = responseObject.toString();
				System.out.println(responseString);
			}
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
	}
	private static void deleteVariable()
	{
		try
		{
			HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
			SSLContext sslContext = SSLContext.getDefault();
			SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
			CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
			URIBuilder uriBuilder = new URIBuilder("https://www.zohoapis.com/crm/v2/settings/variables/34770617683009");
			HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
			requestObj.addHeader("Authorization", "Zoho-oauthtoken 1000.xxxxxxx.xxxxxxx");
			HttpResponse response = httpclient.execute(requestObj);
			HttpEntity responseEntity = response.getEntity();
			System.out.println("HTTP Status Code : " + response.getStatusLine().getStatusCode());
			if(responseEntity != null)
			{
				Object responseObject = EntityUtils.toString(responseEntity);
				String responseString = responseObject.toString();
				System.out.println(responseString);
			}
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
	}
	public static void main(String[] args) 
	{
		deleteVariables();
		deleteVariable();
	}
}
3.0.07.x
Copied//Get instance of VariablesOperations Class
$variablesOperations = new VariablesOperations();
//Get instance of ParameterMap Class
$paramInstance = new ParameterMap();
foreach($variableIds as $variableId)
{
        $paramInstance->add(DeleteVariablesParam::ids(), $variableId);
}
//Call deleteVariables method that takes BodyWrapper class instance as parameter
$response = $variablesOperations->deleteVariables($paramInstance);
Copied<?php

class DeleteVariables 
{
	public function execute(){
        $curl_pointer = curl_init();
        
        $curl_options = array();
        $url = "https://www.zohoapis.com/crm/v2/settings/variables?";
        $parameters = array();
        $parameters["ids"]="35240336002001";
        foreach ($parameters as $key=>$value){
            $url =$url.$key."=".$value;
        }
        
        $curl_options[CURLOPT_URL] = $url;
        $curl_options[CURLOPT_RETURNTRANSFER] = true; 
        $curl_options[CURLOPT_HEADER] = 1;
        $curl_options[CURLOPT_CUSTOMREQUEST] = "DELETE";
     
        $headersArray = array();

        $headersArray[] = "Authorization". ":" . "Zoho-oauthtoken " . "1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf";
        
        $curl_options[CURLOPT_HTTPHEADER]=$headersArray;
        
        curl_setopt_array($curl_pointer, $curl_options);

        $result = curl_exec($curl_pointer);
        $responseInfo = curl_getinfo($curl_pointer);
        curl_close($curl_pointer);
        list ($headers, $content) = explode("\r\n\r\n", $result, 2);
        if(strpos($headers," 100 Continue")!==false){
            list( $headers, $content) = explode( "\r\n\r\n", $content , 2);
        }
        $headerArray = (explode("\r\n", $headers, 50));
        $headerMap = array();
        foreach ($headerArray as $key) {
            if (strpos($key, ":") != false) {
                $firstHalf = substr($key, 0, strpos($key, ":"));
                $secondHalf = substr($key, strpos($key, ":") + 1);
                $headerMap[$firstHalf] = trim($secondHalf);
            }
        }
        $jsonResponse = json_decode($content, true);
        if ($jsonResponse == null && $responseInfo['http_code'] != 204) {
            list ($headers, $content) = explode("\r\n\r\n", $content, 2);
            $jsonResponse = json_decode($content, true);
        }
        var_dump($headerMap);
        var_dump($jsonResponse);
        var_dump($responseInfo['http_code']);
       
    }
    
}
(new DeleteVariables())->execute();
3.0.08.x
Copied//Get instance of VariablesOperations Class
VariablesOperations variablesOperations = new VariablesOperations();
//Get instance of ParameterMap Class
ParameterMap paramInstance = new ParameterMap();
foreach(long variableId in variableIds)
{
    paramInstance.Add(DeleteVariablesParam.IDS, variableId);
}
//Call deleteVariables method that takes paramInstance as parameter
APIResponse<ActionHandler> response = variablesOperations.DeleteVariables(paramInstance);
Copiedusing System;
using System.IO;
using System.Net;
namespace Com.Zoho.Crm.API.Sample.RestAPI.Variables
{
    public class DeleteVariables
    {
        public static void DeleteListofVariable()
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.zohoapis.com/crm/v2/settings/variables?ids=34770617850047");
            request.Method = "DELETE";
            request.Headers["Authorization"] = "Zoho-oauthtoken 1000.abfeXXXXXXXXXXX2asw.XXXXXXXXXXXXXXXXXXsdc2";
            request.KeepAlive = true;
            HttpWebResponse response;
            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException e)
            {
                if (e.Response == null) { throw; }
                response = (HttpWebResponse)e.Response;
            }
            HttpWebResponse responseEntity = response;
            Console.WriteLine("HTTP Status Code : " + (int)response.StatusCode);
            string responsestring = new StreamReader(responseEntity.GetResponseStream()).ReadToEnd();
            responseEntity.Close();
            Console.WriteLine(responsestring);
        }
        public static void DeleteVariable()
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.zohoapis.com/crm/v2/settings/variables/34770617683009");
            request.Method = "DELETE";
            request.Headers["Authorization"] = "Zoho-oauthtoken 1000.abfeXXXXXXXXXXX2asw.XXXXXXXXXXXXXXXXXXsdc2";
            request.KeepAlive = true;
            HttpWebResponse response;
            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException e)
            {
                if (e.Response == null) { throw; }
                response = (HttpWebResponse)e.Response;
            }
            HttpWebResponse responseEntity = response;
            Console.WriteLine("HTTP Status Code : " + (int)response.StatusCode);
            string responsestring = new StreamReader(responseEntity.GetResponseStream()).ReadToEnd();
            responseEntity.Close();
            Console.WriteLine(responsestring);
        }
    }
}
3.0.03.x.x
Copied# Get instance of VariablesOperations Class
variables_operations = VariablesOperations()
# Call delete_variable method that takes variable_id as parameter
response = variables_operations.delete_variable(variable_id)


# Get instance of VariablesOperations Class
variables_operations = VariablesOperations()
# Get instance of ParameterMap Class
param_instance = ParameterMap()
# Possible parameters of Delete Variables operation
for variable_id in variable_ids:
    param_instance.add(DeleteVariablesParam.ids, variable_id)
# Call delete_variables method that takes ParameterMap instance as parameter
response = variables_operations.delete_variables(param_instance)
Copieddef delete_variables():
    import requests

    url = 'https://www.zohoapis.com/crm/v2/settings/variables'

    headers = {
        'Authorization': 'Zoho-oauthtoken 1000.04be928xxxx995acxx7c68.0b9xxxxx96e268',
    }

    parameters = {
        'ids': '3409643000002804002,3409643000002804003,3409643000002804004',
    }

    response = requests.delete(url=url, headers=headers, params=parameters)

    if response is not None:
        print("HTTP Status Code : " + str(response.status_code))

        print(response.json())

delete_variables()

def delete_variable():
    import requests

    url = 'https://www.zohoapis.com/crm/v2/settings/variables/3409643000002804002'

    headers = {
        'Authorization': 'Zoho-oauthtoken 1000.04be928e4a965xxxxx17c68.0b9e25ccbe5xxxx96e268',
    }

    response = requests.delete(url=url, headers=headers)

    if response is not None:
        print("HTTP Status Code : " + str(response.status_code))

        print(response.json())

delete_variable()
1.0.010.x
Copied//Get instance of VariablesOperations Class
let variablesOperations = new VariablesOperations();
//Get instance of ParameterMap Class
let paramInstance = new ParameterMap();
/* Possible parameters of Delete Variables operation */
for(let variableId of variableIds) {
    await paramInstance.add(DeleteVariablesParam.IDS, variableId);
}
//Call deleteVariables method that takes ParameterMap instance as parameter
let response = await variablesOperations.deleteVariables(paramInstance);
Copiedasync function deleteVariables() {
    const got = require("got");

    let url = 'https://www.zohoapis.com/crm/v2/settings/variables'

    let headers = {
        Authorization : "Zoho-oauthtoken 1000.354df3680b39983084e6a9d1894732f3.aae0efe21a1cf8c14beb10f6f4c92bc9"
    }

    let parameters = {
        'ids': '3409643001,3409643002,3409643003'
    }

    let requestDetails = {
        method : "DELETE",
        headers : headers,
        searchParams : parameters,
        throwHttpErrors : false
    }
    
    let response = await got(url, requestDetails)
    
    if(response != null) {
        console.log(response.statusCode);
        console.log(response.body);
    } 
}

deleteVariables()

async function deleteVariable() {
    const got = require("got");

    let url = 'https://www.zohoapis.com/crm/v2/settings/variables/3409643001'

    let headers = {
        Authorization : "Zoho-oauthtoken 1000.354df3680b39983084e6a9d1894732f3.aae0efe21a1cf8c14beb10f6f4c92bc9"
    }

    let requestDetails = {
        method : "DELETE",
        headers : headers,
        throwHttpErrors : false
    }
    
    let response = await got(url, requestDetails)
    
    if(response != null) {
        console.log(response.statusCode);
        console.log(response.body);
    } 
}

deleteVariable()
2.02.x.x
Copied# Get instance of ParameterMap Class
pm = ParameterMap.new
variable_ids.each do |variable_id|
  # Possible parameters of Delete Variables operation
  pm.add(Variables::VariablesOperations::DeleteVariablesParam.ids, variable_id)
end
# Get instance of VariablesOperations Class
vo = Variables::VariablesOperations.new
# Call delete_variables method that takes ParameterMap instance as parameter
response = vo.delete_variables(pm)
Copiedclass GetVariables

    def execute
        parameters ={}
        parameters["ids"]="3524033000003461001"
        query_string = parameters.to_a.map { |x| "#{x[0]}=#{x[1]}" }.join('&')
        url= "https://www.zohoapis.com/crm/v2/settings/variables"
        url += '?' + query_string if !query_string.nil? && (query_string.strip != '')
        url = URI(url)
        req = Net::HTTP::Delete.new(url.request_uri)
        http = Net::HTTP.new(url.host, url.port)
        http.use_ssl = true
        headers={}
        headers["Authorization"]="Zoho-oauthtoken 1000.50XXXXXXXXX&77e3a.44XXXXXXXXX8353"
        headers&.each { |key, value| req.add_field(key, value) }
        response=http.request(req)
        status_code = response.code.to_i
        headers = response.each_header.to_h
        print status_code
        print headers
        unless response.body.nil?
            print  response.body
        end
    end
end
GetVariables.new.execute
1.0.0ES6
Copied//Get instance of VariablesOperations Class
let variablesOperations = new ZCRM.Variable.Operations();
//Get instance of ParameterMap Class
let paramInstance = new ParameterMap();
/* Possible parameters of Delete Variables operation */
for(let variableId of variableIds) {
    await paramInstance.add(ZCRM.Variable.Model.DeleteVariablesParam.IDS, variableId);
}
//Call deleteVariables method that takes ParameterMap instance as parameter
let response = await variablesOperations.deleteVariables(paramInstance);
Copiedvar listener = 0;
class DeleteVariables {

	async deleteListofVariable()	{
		var url = "https://www.zohoapis.com/crm/v2/settings/variables"
        var parameters = new Map()
        var headers = new Map()
        var token = {
            clientId:"1000.NPY9M1V0XXXXXXXXXXXXXXXXXXXF7H",
            redirectUrl:"http://127.0.0.1:5500/redirect.html",
            scope:"ZohoCRM.users.ALL,ZohoCRM.bulk.read,ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,Aaaserver.profile.Read,ZohoCRM.org.ALL,profile.userphoto.READ,ZohoFiles.files.ALL,ZohoCRM.bulk.ALL,ZohoCRM.settings.variable_groups.ALL"
        }
        var accesstoken = await new DeleteVariables().getToken(token)
        headers.set("Authorization", "Zoho-oauthtoken " + accesstoken)
        parameters.set("ids", "34770617671012,34770617773001,34770617773003")
        var requestMethod = "DELETE"
        var reqBody = null
        var params = "";
        parameters.forEach(function(value, key) {
            if (parameters.has(key)) {
                if (params) {
                    params = params + key + '=' + value + '&';
                }
                else {
                    params = key + '=' + value + '&';
                }
            }
        });
        var apiHeaders = {};
        if(headers) {
            headers.forEach(function(value, key) {
                apiHeaders[key] = value;
            });
        }
        if (params.length > 0){
            url = url + '?' + params.substring(0, params.length - 1);
        }
        var requestObj = {
            uri : url,
            method : requestMethod,
            headers : apiHeaders,
            body : JSON.stringify(reqBody),
            encoding: "utf8",
            allowGetBody : true,
			throwHttpErrors : false
        };
        var result = await new DeleteVariables().makeAPICall(requestObj);
        console.log(result.status)
        console.log(result.response)
    }

	async deleteVariable() {
		var url = "https://www.zohoapis.com/crm/v2/settings/variables/34770617683009"
        var parameters = new Map()
        var headers = new Map()
        var token = {
            clientId:"1000.NPY9M1V0XXXXXXXXXXXXXXXXXXXF7H",
            redirectUrl:"http://127.0.0.1:5500/redirect.html",
            scope:"ZohoCRM.users.ALL,ZohoCRM.bulk.read,ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,Aaaserver.profile.Read,ZohoCRM.org.ALL,profile.userphoto.READ,ZohoFiles.files.ALL,ZohoCRM.bulk.ALL,ZohoCRM.settings.variable_groups.ALL"
        }
        var accesstoken = await new DeleteVariables().getToken(token)
        headers.set("Authorization", "Zoho-oauthtoken " + accesstoken)
        var requestMethod = "DELETE"
        var reqBody = null
        var params = "";
        parameters.forEach(function(value, key) {
            if (parameters.has(key)) {
                if (params) {
                    params = params + key + '=' + value + '&';
                }
                else {
                    params = key + '=' + value + '&';
                }
            }
        });
        var apiHeaders = {};
        if(headers) {
            headers.forEach(function(value, key) {
                apiHeaders[key] = value;
            });
        }
        if (params.length > 0){
            url = url + '?' + params.substring(0, params.length - 1);
        }
        var requestObj = {
            uri : url,
            method : requestMethod,
            headers : apiHeaders,
            body : JSON.stringify(reqBody),
            encoding: "utf8",
            allowGetBody : true,
			throwHttpErrors : false
        };
        var result = await new DeleteVariables().makeAPICall(requestObj);
        console.log(result.status)
        console.log(result.response)
	}

    async getToken(token) {

        if(listener == 0) {

            window.addEventListener("storage", function(reponse) {
                if(reponse.key === "access_token" && (reponse.oldValue != reponse.newValue || reponse.oldValue == null)){
                    location.reload();
                }
                if(reponse.key === "access_token"){

                    sessionStorage.removeItem("__auth_process");
                }
            }, false);
            listener = 1;
            if(sessionStorage.getItem("__auth_process")) {
                sessionStorage.removeItem("__auth_process");
            }
        }
        ["granted_for_session", "access_token","expires_in","expires_in_sec","location","api_domain","state","__token_init","__auth_process"].forEach(function (k) {
            var isKeyExists = localStorage.hasOwnProperty(k);
            if(isKeyExists) {
                sessionStorage.setItem(k, localStorage[k]);
            }
            localStorage.removeItem(k);
        });
        var valueInStore = sessionStorage.getItem("access_token");
        var tokenInit = sessionStorage.getItem("__token_init");
        if(tokenInit != null && valueInStore != null && Date.now() >= parseInt(tokenInit) + 59 * 60 * 1000){ // check after 59th minute
            valueInStore = null;
            sessionStorage.removeItem("access_token");
        }

        var auth_process = sessionStorage.getItem("__auth_process");
        if ((valueInStore == null && auth_process == null) || (valueInStore == 'undefined' && (auth_process == null || auth_process == "true"))) {
            var accountsUrl = "https://accounts.zoho.com/oauth/v2/auth"
            var clientId;
            var scope;
            var redirectUrl;
            if(token != null) {
                clientId = token.clientId;
                scope = token.scope;
                redirectUrl = token.redirectUrl;
            }

            var fullGrant = sessionStorage.getItem("full_grant");
            var grantedForSession = sessionStorage.getItem("granted_for_session");
            if(sessionStorage.getItem("__token_init") != null && ((fullGrant != null && "true" == full_grant) || (grantedForSession != null && "true" == grantedForSession))) {
                accountsUrl += '/refresh';
            }
            if (clientId && scope) {
                sessionStorage.setItem("__token_init", Date.now());
                sessionStorage.removeItem("access_token");
                sessionStorage.setItem("__auth_process", "true");
                window.open(accountsUrl + "?" + "scope" + "=" + scope + "&"+ "client_id" +"=" + clientId + "&response_type=token&state=zohocrmclient&redirect_uri=" + redirectUrl);
                ["granted_for_session", "access_token","expires_in","expires_in_sec","location","api_domain","state","__token_init","__auth_process"].forEach(function (k) {
                    var isKeyExists = localStorage.hasOwnProperty(k);
                    if(isKeyExists){
                        sessionStorage.setItem(k, localStorage[k]);
                    }
                    localStorage.removeItem(k);
                });
                valueInStore = sessionStorage.getItem("access_token");
            }
        }
        if(token != null && valueInStore != 'undefined'){
            token.accessToken = valueInStore;
        }
        return token.accessToken;
    }

    async makeAPICall(requestDetails) {
        return new Promise(function (resolve, reject) {
            var body, xhr, i;
            body = requestDetails.body || null;
            xhr = new XMLHttpRequest();
            xhr.withCredentials = true;
            xhr.open(requestDetails.method, requestDetails.uri, true);
            for (i in requestDetails.headers) {
                xhr.setRequestHeader(i, requestDetails.headers[i]);
            }
            xhr.send(body);
            xhr.onreadystatechange = function() {
                if(xhr.readyState == 4) {
                    resolve(xhr);
                }
            }
        })
    }
}
Copiedresponse = invokeurl
[
	url: "https://www.zohoapis.com/crm/v2/settings/variables?ids=40000000047007,40000000047009,40000000047010"
	type: DELETE
	connection:"crm_oauth_connection"
];
info response;

Possible Errors

  • INVALID_URL_PATTERNHTTP 404

    Please check if the URL trying to access is a correct one
    Resolution: The request URL specified is incorrect. Specify a valid request URL. Refer to request URL section above.

  • OAUTH_SCOPE_MISMATCHHTTP 401

    Unauthorized
    Resolution: Client does not have ZohoCRM.settings.variables.DELETE scope. Create a new client with valid scope. Refer to scope section above.

  • NO_PERMISSIONHTTP 403

    Permission denied to delete records
    Resolution: The user does not have permission to delete variables. Contact your system administrator.

  • INTERNAL_ERRORHTTP 500

    Internal Server Error
    Resolution: Unexpected and unhandled exception in Server. Contact support team.

  • INVALID_REQUEST_METHODHTTP 400

    The http request method type is not a valid one
    Resolution: You have specified an invalid HTTP method to access the API URL. Specify a valid request method. Refer to endpoints section above.

  • AUTHORIZATION_FAILEDHTTP 400

    User does not have sufficient privilege to delete variables
    Resolution: The user does not have the permission to delete variables. Contact your system administrator.

  • INVALID_DATAHTTP 400

    variable not deleted
    Resolution: The specified ID of the variable is incorrect. Refer to Get Variables API to get unique variable ID.

  • UNABLE_TO_PARSE_DATA_TYPEHTTP 400

    either the request body or parameters is in wrong format
    Resolution: The parameter values are in the wrong format. Specify valid record IDs in the correct format. Refer to endpoints section above.

  • REQUIRED_PARAM_MISSINGHTTP 400

    One of the expected parameter is missing
    Resolution: 'ids' parameter is missing in the request. Please specify the valid IDs of the variables to be deleted. Refer to Get Variable Data API to get valid record IDs.

Sample Response

Copied{
    "variables": [
       {
            "code": "SUCCESS",
            "details": {
                "id": "40000000047007"
            },
            "message": "variable deleted",
            "status": "success"
        },
       {
            "code": "SUCCESS",
            "details": {
                "id": "40000000047009"
            },
            "message": "variable deleted",
            "status": "success"
        },
       {
            "code": "SUCCESS",
            "details": {
                "id": "40000000047010"
            },
            "message": "variable deleted",
            "status": "success"
        }
    ]
}