Zoho Projects API Documentation
Text copied
File not found

Custom Module Records

Get Entities List

Retrieve the list of records from a module.

GET

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities

OAuth Scope:

ZohoProjects.portals.READ

Path Parameters

Param Name
Data Type
Description

Query Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • JSON
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X GET \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities?index=1&range=100&page=1&per_page=10&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22module%22%3A%22projects%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22module_name%22%3A%22task%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B1752587000000097269%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=23806000074760021&project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities";
filter_value = {"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"};
params = Map();
params.put("index", 1);
params.put("range", 100);
params.put("page", 1);
params.put("per_page", 10);
params.put("filter", filter_value);
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "23806000074760021");
params.put("project_id", "23806000097545166");
response = invokeUrl
[
    url: url
    type: GET
    parameters: params
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities');
url.searchParams.append('index', '1');
url.searchParams.append('range', '100');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('filter', '{"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_id', '23806000074760021');
url.searchParams.append('project_id', '23806000097545166');

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'GET',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities")
params = {
  "index" => "1",
  "range" => "100",
  "page" => "1",
  "per_page" => "10",
  "filter" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}",
  "sort_by" => "ASC(last_modified_time)",
  "view_id" => "23806000074760021",
  "project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"

response = http.request(request)
puts response.read_body
<?php
$params = [
    'index' => '1',
    'range' => '100',
    'page' => '1',
    'per_page' => '10',
    'filter' => '{"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}',
    'sort_by' => 'ASC(last_modified_time)',
    'view_id' => '23806000074760021',
    'project_id' => '23806000097545166',
];
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities" . "?" . http_build_query($params);

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities"

params = {
    "index": "1",
    "range": "100",
    "page": "1",
    "per_page": "10",
    "filter": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}",
    "sort_by": "ASC(last_modified_time)",
    "view_id": "23806000074760021",
    "project_id": "23806000097545166"
}

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}

response = requests.get(url, headers=headers, params=params)

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        char *enc_index = curl_easy_escape(curl, "1", 0);
        char *enc_range = curl_easy_escape(curl, "100", 0);
        char *enc_page = curl_easy_escape(curl, "1", 0);
        char *enc_per_page = curl_easy_escape(curl, "10", 0);
        char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}", 0);
        char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
        char *enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
        char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
        char url[2048];
        snprintf(url, sizeof(url), "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities?index=%s&range=%s&page=%s&per_page=%s&filter=%s&sort_by=%s&view_id=%s&project_id=%s", enc_index, enc_range, enc_page, enc_per_page, enc_filter, enc_sort_by, enc_view_id, enc_project_id);

        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_free(enc_index);
        curl_free(enc_range);
        curl_free(enc_page);
        curl_free(enc_per_page);
        curl_free(enc_filter);
        curl_free(enc_sort_by);
        curl_free(enc_view_id);
        curl_free(enc_project_id);
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var query = HttpUtility.ParseQueryString(string.Empty);
query["index"] = "1";
query["range"] = "100";
query["page"] = "1";
query["per_page"] = "10";
query["filter"] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "23806000074760021";
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        char* enc_index = curl_easy_escape(curl, "1", 0);
        char* enc_range = curl_easy_escape(curl, "100", 0);
        char* enc_page = curl_easy_escape(curl, "1", 0);
        char* enc_per_page = curl_easy_escape(curl, "10", 0);
        char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}", 0);
        char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
        char* enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
        char* enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
        std::string url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities";
        url += "?index=" + std::string(enc_index);
        url += "&range=" + std::string(enc_range);
        url += "&page=" + std::string(enc_page);
        url += "&per_page=" + std::string(enc_per_page);
        url += "&filter=" + std::string(enc_filter);
        url += "&sort_by=" + std::string(enc_sort_by);
        url += "&view_id=" + std::string(enc_view_id);
        url += "&project_id=" + std::string(enc_project_id);

        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_free(enc_index);
        curl_free(enc_range);
        curl_free(enc_page);
        curl_free(enc_per_page);
        curl_free(enc_filter);
        curl_free(enc_sort_by);
        curl_free(enc_view_id);
        curl_free(enc_project_id);
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(let [enc-index (java.net.URLEncoder/encode "1" "UTF-8")
      enc-range (java.net.URLEncoder/encode "100" "UTF-8")
      enc-page (java.net.URLEncoder/encode "1" "UTF-8")
      enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
      enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}" "UTF-8")
      enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
      enc-view_id (java.net.URLEncoder/encode "23806000074760021" "UTF-8")
      enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
      url (str "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities" "?index=" enc-index "&range=" enc-range "&page=" enc-page "&per_page=" enc-per_page "&filter=" enc-filter "&sort_by=" enc-sort_by "&view_id=" enc-view_id "&project_id=" enc-project_id)]
(def response
  (client/get url
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
    "net/url"
)

func main() {
    req, _ := http.NewRequest("GET", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities", nil)
    q := req.URL.Query()
    q.Add("index", "1")
    q.Add("range", "100")
    q.Add("page", "1")
    q.Add("per_page", "10")
    q.Add("filter", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}")
    q.Add("sort_by", "ASC(last_modified_time)")
    q.Add("view_id", "23806000074760021")
    q.Add("project_id", "23806000097545166")
    req.URL.RawQuery = q.Encode()
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
GET https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities?index=1&range=100&page=1&per_page=10&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22module%22%3A%22projects%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22module_name%22%3A%22task%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B1752587000000097269%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=23806000074760021&project_id=23806000097545166 HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities?index=1&range=100&page=1&per_page=10&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22module%22%3A%22projects%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22module_name%22%3A%22task%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B1752587000000097269%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=23806000074760021&project_id=23806000097545166
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities");
uriBuilder.addParameter("index", "1");
uriBuilder.addParameter("range", "100");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "23806000074760021");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities';

const params = new URLSearchParams({
  'index': '1',
  'range': '100',
  'page': '1',
  'per_page': '10',
  'filter': '{"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}',
  'sort_by': 'ASC(last_modified_time)',
  'view_id': '23806000074760021',
  'project_id': '23806000097545166'
});

const options = {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

fetch(url + '?' + params.toString(), options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
index = 1
range = 100
page = 1
per_page = 10
filter = {"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}
sort_by = "ASC(last_modified_time)"
view_id = "23806000074760021"
project_id = "23806000097545166"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val urlBuilder = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities".toHttpUrl().newBuilder()
    urlBuilder.addQueryParameter("index", "1")
    urlBuilder.addQueryParameter("range", "100")
    urlBuilder.addQueryParameter("page", "1")
    urlBuilder.addQueryParameter("per_page", "10")
    urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}")
    urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
    urlBuilder.addQueryParameter("view_id", "23806000074760021")
    urlBuilder.addQueryParameter("project_id", "23806000097545166")
    val url = URL(urlBuilder.build().toString())
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "GET"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSString *encodedIndex = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"100" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000074760021" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities?index=%@&range=%@&page=%@&per_page=%@&filter=%@&sort_by=%@&view_id=%@&project_id=%@", encodedIndex, encodedRange, encodedPage, encodedPer_page, encodedFilter, encodedSort_by, encodedView_id, encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let enc_index = Uri.pct_encode "1" in
  let enc_range = Uri.pct_encode "100" in
  let enc_page = Uri.pct_encode "1" in
  let enc_per_page = Uri.pct_encode "10" in
  let enc_filter = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}" in
  let enc_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
  let enc_view_id = Uri.pct_encode "23806000074760021" in
  let enc_project_id = Uri.pct_encode "23806000097545166" in
  let uri = Uri.of_string ("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities" ^ "?index=" ^ enc_index ^ "&range=" ^ enc_range ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&filter=" ^ enc_filter ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&project_id=" ^ enc_project_id) in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  in
  Lwt_main.run (
    Client.get ~headers uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}

$params = @{
    index = "1"
    range = "100"
    page = "1"
    per_page = "10"
    filter = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"module`":`"projects`",`"api_name`":`"name`",`"field_name`":`"Risk Name`",`"module_name`":`"task`",`"criteria_condition`":`"contains`",`"value`":[1752587000000097269],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"field_name`":`"Risk Name`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`",`"is_this_today`":false}]}],`"pattern`":`"1`"}"
    sort_by = "ASC(last_modified_time)"
    view_id = "23806000074760021"
    project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities" + "?" + $queryString

$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities"

params <- list(
  index = "1",
  range = "100",
  page = "1",
  per_page = "10",
  filter = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}",
  sort_by = "ASC(last_modified_time)",
  view_id = "23806000074760021",
  project_id = "23806000097545166"
)

response <- GET(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
  query = params
)

content(response, "text")
import Foundation

var components = URLComponents(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities")!
components.queryItems = [
    URLQueryItem(name: "index", value: "1"),
    URLQueryItem(name: "range", value: "100"),
    URLQueryItem(name: "page", value: "1"),
    URLQueryItem(name: "per_page", value: "10"),
    URLQueryItem(name: "filter", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}"),
    URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
    URLQueryItem(name: "view_id", value: "23806000074760021"),
    URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Input

index : 1 range : 100 page : 1 per_page : 10 filter : { "criteria" : [ { "cfid" : "4000000000242", "module" : "projects", "api_name" : "name", "field_name" : "Risk Name", "module_name" : "task", "criteria_condition" : "contains", "value" : [ 1752587000000097269 ], "relative_columns" : [ { "cfid" : "4000000000242", "field_name" : "Risk Name", "offset" : "1", "unit" : "days", "prior" : "before", "is_this_today" : false } ] } ], "pattern" : "1" } sort_by : "ASC(last_modified_time)" view_id : "23806000074760021" project_id : "23806000097545166"

Sample Response

200[ { "id" : "7000000106001", "name" : "Sample10thDec_005", "created_time" : "2025-02-05T11:05:35.935000Z", "created_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "updated_time" : "2025-02-05T11:05:35.935000Z", "updated_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "status" : { "id" : "7000000062049", "name" : "Active", "color" : "#2cc8ba", "color_hexcode" : "#2cc8ba", "is_closed_type" : false }, "layout" : { "id" : "7000000062013", "name" : "Standard Layout", "is_default" : true, "type" : "public" }, "is_external" : false, "comments_count" : 0, "attachments_count" : 0, "email_booking_std" : "patricia.boyle@zylker.com", "url_booking_std" : "https://projects.zoho.com/", "check_box_booking_std" : false, "multi_line_booking_std" : "ProjectGroupMapping, ProjCustomFieldsValue, ProjectGroup,\nProjCustomFieldsValue AS ProjCustomFieldsValue\nprojectGroup ON ProjectGroup", "phone_booking_std" : 9876543211, "single_line_std" : "10 abc" } ]

Possible Errors

Get Record Details

Retrieve details of a specific record. Use this API to fetch complete information of a record using its ID.

GET

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities/[ENTITY_ID]

OAuth Scope:

ZohoProjects.portals.READ

Path Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X GET \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299";
response = invokeUrl
[
    url: url
    type: GET
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299');

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'GET',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"

response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299";

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}

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

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var request = new HttpRequestMessage(HttpMethod.Get, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(def response
  (client/get "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("GET", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299", nil)
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
GET https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299 HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299';

const options = {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

fetch(url, options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val url = URL("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "GET"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299" in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  in
  Lwt_main.run (
    Client.get ~headers uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}

$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299" -Method GET -Headers $headers

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"

response <- GET(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)

content(response, "text")
import Foundation

let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Response

200{ "id" : "7000000115165", "name" : "entity_26FEb_1229", "created_time" : "2025-02-26T06:59:08.493Z", "created_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Reece", "first_name" : "Reece", "last_name" : "Reed", "full_name" : "Reece Turner" }, "updated_time" : "2025-02-26T06:59:08.493Z", "updated_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Reece", "first_name" : "Reece", "last_name" : "Reed", "full_name" : "Reece Turner" }, "status" : { "id" : "7000000062049", "name" : "Active", "color" : "#2cc8ba", "color_hexcode" : "#2cc8ba", "is_closed_type" : false }, "layout" : { "id" : "7000000062013", "name" : "Standard Layout", "is_default" : true, "type" : "public" }, "is_external" : false, "comments_count" : 0, "attachments_count" : 0, "check_box_booking_std" : false, "multi_line_booking_std" : "Enter the mulit line Text here", "single_line_std" : "asdsd" }

Create Record

Create a record in a custom module. Use this API to add a record with basic details such as name, status, layout, and project.

POST

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities

OAuth Scope:

ZohoProjects.portals.CREATE

Path Parameters

Param Name
Data Type
Description

Body Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • JSON
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X POST \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities";
params = Map();
params.put("name", "Sample_001");
params.put("description", "Sample content of entity");
params.put("status", {"id":"4000000062001"});
params.put("layout", {"id":"4000000062001"});
params.put("project", {"id":"4000000062001"});
params.put("is_closed", false);
params.put("is_external", false);
response = invokeUrl
[
    url: url
    type: POST
    parameters: params.toString()
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities');

const payload = JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false});

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'POST',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
    'Content-Type': 'application/json',
    'Content-Length': Buffer.byteLength(payload)
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}'

response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities";

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}',
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities"

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
    "Content-Type": "application/json",
}

payload = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}'

response = requests.post(url, headers=headers, data=payload)

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var request = new HttpRequestMessage(HttpMethod.Post, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities");
request.Content = new StringContent(
    @"{""name"":""Sample_001"",""description"":""Sample content of entity"",""status"":{""id"":""4000000062001""},""layout"":{""id"":""4000000062001""},""project"":{""id"":""4000000062001""},""is_closed"":false,""is_external"":false}",
    Encoding.UTF8,
    "application/json"
);

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}");

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(def response
  (client/post "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities"
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
                "Content-Type" "application/json"}
     :body "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}"
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
    "strings"
)

func main() {
    payload := strings.NewReader("{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}")
    req, _ := http.NewRequest("POST", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities", payload)
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
    req.Header.Add("Content-Type", "application/json")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
POST https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json

{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities';

const options = {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false})
};

fetch(url, options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val url = URL("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities")
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "POST"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
    conn.setRequestProperty("Content-Type", "application/json")
    conn.doOutput = true
    conn.outputStream.bufferedWriter().use { it.write("""{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}""") }

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities" in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
    |> fun h -> Cohttp.Header.add h "Content-Type" "application/json"
  in
  let body = Cohttp_lwt.Body.of_string {json|{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}|json} in
  Lwt_main.run (
    Client.post ~headers ~body uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
    "Content-Type" = "application/json"
}

$body = @'
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
'@

$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities" -Method POST -Headers $headers -Body $body

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities"

response <- POST(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
  content_type_json(),
  body = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}"
)

content(response, "text")
import Foundation

let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
""".data(using: .utf8)

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Input

Content-Type: application/json
{ "name" : "Sample_001", "description" : "Sample content of entity", "status" : { "id" : "4000000062001" }, "layout" : { "id" : "4000000062001" }, "project" : { "id" : "4000000062001" }, "is_closed" : false, "is_external" : false }

Sample Response

200{ "id" : "7000000115165", "name" : "entity_26FEb_1229", "created_time" : "2025-02-26T06:59:08.493Z", "created_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "updated_time" : "2025-02-26T06:59:08.493Z", "updated_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "status" : { "id" : "7000000062049", "name" : "Active", "color" : "#2cc8ba", "color_hexcode" : "#2cc8ba", "is_closed_type" : false }, "layout" : { "id" : "7000000062013", "name" : "Standard Layout", "is_default" : true, "type" : "public" }, "is_external" : false, "comments_count" : 0, "attachments_count" : 0, "check_box_booking_std" : false, "multi_line_booking_std" : "Enter the mulit line Text here", "single_line_std" : "asdsd" }

Update Record

Modify details of an existing record. Use this API to modify fields such as name, status, layout, or other record properties.

PATCH

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities/[ENTITY_ID]

OAuth Scope:

ZohoProjects.portals.UPDATE

Path Parameters

Param Name
Data Type
Description

Body Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • JSON
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X PATCH \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299";
params = Map();
params.put("name", "Sample_001");
params.put("description", "Sample content of entity");
params.put("status", {"id":"4000000062001"});
params.put("layout", {"id":"4000000062001"});
params.put("project", {"id":"4000000062001"});
params.put("is_closed", false);
params.put("is_external", false);
response = invokeUrl
[
    url: url
    type: PATCH
    parameters: params.toString()
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299');

const payload = JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false});

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'PATCH',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
    'Content-Type': 'application/json',
    'Content-Length': Buffer.byteLength(payload)
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}'

response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299";

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}',
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
    "Content-Type": "application/json",
}

payload = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}'

response = requests.patch(url, headers=headers, data=payload)

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var request = new HttpRequestMessage(HttpMethod.Patch, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
request.Content = new StringContent(
    @"{""name"":""Sample_001"",""description"":""Sample content of entity"",""status"":{""id"":""4000000062001""},""layout"":{""id"":""4000000062001""},""project"":{""id"":""4000000062001""},""is_closed"":false,""is_external"":false}",
    Encoding.UTF8,
    "application/json"
);

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}");

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(def response
  (client/patch "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
                "Content-Type" "application/json"}
     :body "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}"
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
    "strings"
)

func main() {
    payload := strings.NewReader("{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}")
    req, _ := http.NewRequest("PATCH", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299", payload)
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
    req.Header.Add("Content-Type", "application/json")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
PATCH https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299 HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json

{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299';

const options = {
  method: 'PATCH',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false})
};

fetch(url, options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val url = URL("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "PATCH"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
    conn.setRequestProperty("Content-Type", "application/json")
    conn.doOutput = true
    conn.outputStream.bufferedWriter().use { it.write("""{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}""") }

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PATCH"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299" in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
    |> fun h -> Cohttp.Header.add h "Content-Type" "application/json"
  in
  let body = Cohttp_lwt.Body.of_string {json|{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}|json} in
  Lwt_main.run (
    Client.patch ~headers ~body uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
    "Content-Type" = "application/json"
}

$body = @'
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
'@

$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299" -Method PATCH -Headers $headers -Body $body

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"

response <- PATCH(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
  content_type_json(),
  body = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":false,\"is_external\":false}"
)

content(response, "text")
import Foundation

let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":false,"is_external":false}
""".data(using: .utf8)

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Input

Content-Type: application/json
{ "name" : "Sample_001", "description" : "Sample content of entity", "status" : { "id" : "4000000062001" }, "layout" : { "id" : "4000000062001" }, "project" : { "id" : "4000000062001" }, "is_closed" : false, "is_external" : false }

Sample Response

200{ "id" : "7000000115165", "name" : "entity_26FEb_1229", "created_time" : "2025-02-26T06:59:08.493Z", "created_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "updated_time" : "2025-02-26T07:00:31.642Z", "updated_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "status" : { "id" : "7000000062049", "name" : "Active", "color" : "#2cc8ba", "color_hexcode" : "#2cc8ba", "is_closed_type" : false }, "layout" : { "id" : "7000000062013", "name" : "Standard Layout", "is_default" : true, "type" : "public" }, "is_external" : false, "comments_count" : 0, "attachments_count" : 0, "email_booking_std" : "mark.taylor@zylker.com", "check_box_booking_std" : false, "multi_line_booking_std" : "Enter the mulit line Text here", "single_line_std" : "asdsd" }

Restore Record

Restore the trashed record from recycle bin.

POST

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities/[ENTITY_ID]/restore

OAuth Scope:

ZohoProjects.portals.UPDATE

Path Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X POST \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore";
response = invokeUrl
[
    url: url
    type: POST
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore');

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'POST',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"

response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore";

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore"

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}

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

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var request = new HttpRequestMessage(HttpMethod.Post, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore");

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(def response
  (client/post "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore"
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("POST", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore", nil)
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
POST https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore';

const options = {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

fetch(url, options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val url = URL("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore")
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "POST"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore" in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  in
  Lwt_main.run (
    Client.post ~headers uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}

$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore" -Method POST -Headers $headers

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore"

response <- POST(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)

content(response, "text")
import Foundation

let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/restore")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Response

200{ "id" : "7000000063085", "name" : "Book1", "created_time" : "2024-11-13T05:35:35.969Z", "created_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "updated_time" : "2024-11-19T10:07:16.464Z", "updated_by" : { "zuid" : 25450833, "zpuid" : "7000000002411", "name" : "Elena Upton", "first_name" : "Elena", "last_name" : "R", "full_name" : "Elena Upton" }, "status" : { "id" : "7000000062049", "name" : "Active", "color" : "#2cc8ba", "color_hexcode" : "#2cc8ba", "is_closed_type" : false }, "layout" : { "id" : "7000000062013", "name" : "Standard Layout", "is_default" : true, "type" : "public" }, "is_external" : false, "comments_count" : 0, "attachments_count" : 0, "email_booking_std" : "michael.dunn@zylker.com", "url_booking_std" : "https://www.zylker.com/", "check_box_booking_std" : true, "multi_line_booking_std" : "This is First multiline Field value", "phone_booking_std" : "9845793424", "num_field_booking_std" : "45678", "single_line_std" : "first single line", "percent_booking_std" : 23.0, "date_filed_booking_std" : "2024-11-20", "currency_field_std" : { "currency_code" : "USD", "formatted_amount" : "$ 123.00", "currency_id" : "7000000015018", "amount" : 123.0 } }

Delete Record

Remove a record permanently from the recycle bin. Use this API to remove a record completely.

DELETE

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities/[ENTITY_ID]

OAuth Scope:

ZohoProjects.portals.DELETE

Path Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X DELETE \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299";
response = invokeUrl
[
    url: url
    type: DELETE
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299');

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"

response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299";

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}

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

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var request = new HttpRequestMessage(HttpMethod.Delete, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(def response
  (client/delete "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("DELETE", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299", nil)
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
DELETE https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299 HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299';

const options = {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

fetch(url, options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val url = URL("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "DELETE"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299" in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  in
  Lwt_main.run (
    Client.delete ~headers uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}

$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299" -Method DELETE -Headers $headers

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299"

response <- DELETE(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)

content(response, "text")
import Foundation

let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299")!
var request = URLRequest(url: url)
request.httpMethod = "DELETE"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Response

204 No Content{ "status" : "success" }

Get Record Count

Retrieve the count of records from a module.

GET

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities/count

OAuth Scope:

ZohoProjects.portals.READ

Path Parameters

Param Name
Data Type
Description

Query Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • JSON
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X GET \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count?filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22module%22%3A%22projects%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22module_name%22%3A%22task%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B1752587000000097269%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&view_id=23806000074760021&project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count";
filter_value = {"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"};
params = Map();
params.put("filter", filter_value);
params.put("view_id", "23806000074760021");
params.put("project_id", "23806000097545166");
response = invokeUrl
[
    url: url
    type: GET
    parameters: params
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count');
url.searchParams.append('filter', '{"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}');
url.searchParams.append('view_id', '23806000074760021');
url.searchParams.append('project_id', '23806000097545166');

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'GET',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count")
params = {
  "filter" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}",
  "view_id" => "23806000074760021",
  "project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"

response = http.request(request)
puts response.read_body
<?php
$params = [
    'filter' => '{"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}',
    'view_id' => '23806000074760021',
    'project_id' => '23806000097545166',
];
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count" . "?" . http_build_query($params);

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count"

params = {
    "filter": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}",
    "view_id": "23806000074760021",
    "project_id": "23806000097545166"
}

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}

response = requests.get(url, headers=headers, params=params)

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}", 0);
        char *enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
        char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
        char url[2048];
        snprintf(url, sizeof(url), "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count?filter=%s&view_id=%s&project_id=%s", enc_filter, enc_view_id, enc_project_id);

        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_free(enc_filter);
        curl_free(enc_view_id);
        curl_free(enc_project_id);
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var query = HttpUtility.ParseQueryString(string.Empty);
query["filter"] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}";
query["view_id"] = "23806000074760021";
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}", 0);
        char* enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
        char* enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
        std::string url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count";
        url += "?filter=" + std::string(enc_filter);
        url += "&view_id=" + std::string(enc_view_id);
        url += "&project_id=" + std::string(enc_project_id);

        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_free(enc_filter);
        curl_free(enc_view_id);
        curl_free(enc_project_id);
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(let [enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}" "UTF-8")
      enc-view_id (java.net.URLEncoder/encode "23806000074760021" "UTF-8")
      enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
      url (str "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count" "?filter=" enc-filter "&view_id=" enc-view_id "&project_id=" enc-project_id)]
(def response
  (client/get url
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
    "net/url"
)

func main() {
    req, _ := http.NewRequest("GET", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count", nil)
    q := req.URL.Query()
    q.Add("filter", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}")
    q.Add("view_id", "23806000074760021")
    q.Add("project_id", "23806000097545166")
    req.URL.RawQuery = q.Encode()
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
GET https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count?filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22module%22%3A%22projects%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22module_name%22%3A%22task%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B1752587000000097269%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&view_id=23806000074760021&project_id=23806000097545166 HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count?filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22module%22%3A%22projects%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22module_name%22%3A%22task%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B1752587000000097269%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&view_id=23806000074760021&project_id=23806000097545166
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("view_id", "23806000074760021");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count';

const params = new URLSearchParams({
  'filter': '{"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}',
  'view_id': '23806000074760021',
  'project_id': '23806000097545166'
});

const options = {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

fetch(url + '?' + params.toString(), options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
filter = {"criteria":[{"cfid":"4000000000242","module":"projects","api_name":"name","field_name":"Risk Name","module_name":"task","criteria_condition":"contains","value":[1752587000000097269],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1"}
view_id = "23806000074760021"
project_id = "23806000097545166"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val urlBuilder = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count".toHttpUrl().newBuilder()
    urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}")
    urlBuilder.addQueryParameter("view_id", "23806000074760021")
    urlBuilder.addQueryParameter("project_id", "23806000097545166")
    val url = URL(urlBuilder.build().toString())
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "GET"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSString *encodedFilter = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000074760021" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count?filter=%@&view_id=%@&project_id=%@", encodedFilter, encodedView_id, encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let enc_filter = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}" in
  let enc_view_id = Uri.pct_encode "23806000074760021" in
  let enc_project_id = Uri.pct_encode "23806000097545166" in
  let uri = Uri.of_string ("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count" ^ "?filter=" ^ enc_filter ^ "&view_id=" ^ enc_view_id ^ "&project_id=" ^ enc_project_id) in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  in
  Lwt_main.run (
    Client.get ~headers uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}

$params = @{
    filter = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"module`":`"projects`",`"api_name`":`"name`",`"field_name`":`"Risk Name`",`"module_name`":`"task`",`"criteria_condition`":`"contains`",`"value`":[1752587000000097269],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"field_name`":`"Risk Name`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`",`"is_this_today`":false}]}],`"pattern`":`"1`"}"
    view_id = "23806000074760021"
    project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count" + "?" + $queryString

$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count"

params <- list(
  filter = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}",
  view_id = "23806000074760021",
  project_id = "23806000097545166"
)

response <- GET(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
  query = params
)

content(response, "text")
import Foundation

var components = URLComponents(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/count")!
components.queryItems = [
    URLQueryItem(name: "filter", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"module\":\"projects\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1\"}"),
    URLQueryItem(name: "view_id", value: "23806000074760021"),
    URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Input

filter : { "criteria" : [ { "cfid" : "4000000000242", "module" : "projects", "api_name" : "name", "field_name" : "Risk Name", "module_name" : "task", "criteria_condition" : "contains", "value" : [ 1752587000000097269 ], "relative_columns" : [ { "cfid" : "4000000000242", "field_name" : "Risk Name", "offset" : "1", "unit" : "days", "prior" : "before", "is_this_today" : false } ] } ], "pattern" : "1" } view_id : "23806000074760021" project_id : "23806000097545166"

Sample Response

200{ "total_count" : 7 }

Trash Record

Move a record to recycle bin within Zoho Projects portal.

DELETE

/api/v3/portal/[PORTAL_ID]/module/[MODULE_ID]/entities/[ENTITY_ID]/trash

OAuth Scope:

ZohoProjects.portals.UPDATE

Path Parameters

Param Name
Data Type
Description

Request Example

Request Example
  • cURL
  • Deluge
  • Node.js
  • Ruby
  • PHP
  • Python
  • C
  • C#
  • C++
  • Clojure
  • Go
  • HTTP
  • Java
  • JS Fetch
  • Kotlin
  • Objective-C
  • OCaml
  • PowerShell
  • R
  • Swift

curl -X DELETE \
'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash";
response = invokeUrl
[
    url: url
    type: DELETE
    connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash');

const options = {
  hostname: url.hostname,
  path: url.pathname + url.search,
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'

url = URI("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"

response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash";

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
import requests

url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash"

headers = {
    "Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}

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

print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");

        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

var request = new HttpRequestMessage(HttpMethod.Delete, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash");

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
    output->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        std::string response;
        struct curl_slist* headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

        curl_easy_setopt(curl, CURLOPT_URL, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        CURLcode res = curl_easy_perform(curl);
        if (res == CURLE_OK)
            std::cout << response << std::endl;
        else
            std::cerr << curl_easy_strerror(res) << std::endl;

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
(require '[clj-http.client :as client])

(def response
  (client/delete "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash"
    {:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
     :as :json}))

(println (:body response))
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("DELETE", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash", nil)
    req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
DELETE https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
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://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");

HttpResponse response = httpclient.execute(requestObj);

HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash';

const options = {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
  }
};

fetch(url, options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl

fun main() {
    val url = URL("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash")
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "DELETE"
    conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")

    val response = conn.inputStream.bufferedReader().readText()
    println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix

let () =
  let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash" in
  let headers = Cohttp.Header.init ()
    |> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
  in
  Lwt_main.run (
    Client.delete ~headers uri >>= fun (_, body) ->
    Cohttp_lwt.Body.to_string body >|= fun s ->
    print_endline s)
$headers = @{
    "Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}

$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash" -Method DELETE -Headers $headers

$response | ConvertTo-Json
library(httr)

url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash"

response <- DELETE(
  url,
  add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)

content(response, "text")
import Foundation

let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/module/1752587000000097269/entities/1752587000000097299/trash")!
var request = URLRequest(url: url)
request.httpMethod = "DELETE"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")

let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data, let result = String(data: data, encoding: .utf8) {
        print(result)
    }
    semaphore.signal()
}
task.resume()
semaphore.wait()

Sample Response

204 No Content{ "status" : "success" }
AI Tools
ChatGPT Open in ChatGPT ↗ Open in ChatGPT to ask questions about this page
Claude Open in Claude ↗ Open in Claude to ask questions about this page
Copy as Markdown Copy this page as markdown to use with AI assistants
View as Markdown ↗ Open this page as markdown in a new tab
Copy OpenAPI Spec Copy the OpenAPI YAML to the clipboard
View as YAML ↗ Open the OpenAPI spec in a new tab
Download YAML Save the OpenAPI spec as a .yaml file