This module covers project-related operations within Zoho Projects. Use this API to retrieve project activity, view or update project edits, get recent projects, manage issues and tasks, retrieve or add default visibility settings, access favorite templates or gallery templates, add projects from templates, and export custom status timelines.
Get All Projects
Retrieve a list of all projects from the Zoho Projects portal.
GET
/api/v3/portal/[PORTAL_ID]/projects
OAuth Scope:
ZohoProjects.projects.READ
Path Parameters
Param Name
Data Type
Description
portal_id
String
required regex : [0-9]+
Unique, immutable identifier of the portal in Zoho Projects.
You can obtain it from the Get Portals API (the "id" field in the response).
Query Parameters
Param Name
Data Type
Description
page
int
default : 1
Enter the page number.
per_page
int
limit : 1-200 default : 100
Enter the number of entries to be displayed per page.
filter
JSONObject
Enter the filter criteria to retrieve specific projects. The filter is a JSON object containing a list of conditions (criteria) and a logical pattern that defines how those conditions are combined.
criteria
JSONArray
max length : 10000 array size : >=0
A list of filter conditions. Each condition specifies a field, a condition type, and a value to match. Multiple conditions can be combined using the pattern field. Each condition is referenced by its position (starting from 1) in the pattern.
cfid
int
The unique ID of the field to filter on. Use the field ID returned by the module meta API. Either cfid or field_name can be used to identify the field. For example: 4000000000542 for Project Name.
field_name
String
Enter the field name.
criteria_condition
String
max length : 25
The filter condition to apply on the field. Supported conditions vary by field type. Text fields: contains, not_contains, starts_with, ends_with, is, is_not, is_empty, is_not_empty. Date fields: is, is_not, between, not_between, less_than, greater_than, today, yesterday, tomorrow, this_week, last_week, next_week, this_month, last_month, next_month, is_empty, is_not_empty. Picklist fields: is, is_not, all_open, all_closed. User fields: is, is_not, current_login_user, direct_reports_of, subordinates_of. Number fields: equal, not_equal, less_than, greater_than, less_than_or_equal, greater_than_or_equal, between, not_between.
value
JSONArray
max length : 10000 array size : >=0
The values to match against for the given condition. Pass as a JSON array. For single-value conditions like contains or is, pass one element (e.g., ["website"]). For range conditions like between, pass two elements (e.g., ["2024-01-01", "2024-12-31"]). For conditions like today, is_empty, or all_open, this can be an empty array []. For picklist fields, pass the option IDs.
relative_columns
JSONArray
max length : 10000 array size : >=0
Used for dynamic date comparisons instead of fixed values. Compares the filtered date field against another date field or today with an offset. For example, to filter projects where start_date is before today - 2 days, use cfid: 0, prior: before, unit: days, offset: 2. When relative_columns is provided, the value field is ignored.
cfid
int
The unique ID of the reference field to compare against. Use 0 to refer to the current date (today). Either cfid or field_name can be used.
field_name
String
The API name of the reference field to compare against. Use 0 to refer to the current date (today). Either field_name or cfid can be used.
offset
int
The numeric offset to add or subtract from the reference field or today. For example, 2 with unit as days means 2 days.
unit
String
The time unit for the offset. Accepted values: days or hours.
prior
String
The direction of the offset relative to the reference field. before / subtract subtracts the offset. after / add adds the offset. Accepted values: before, after, add, or subtract.
pattern
String
max length : 300
The logical expression that defines how the criteria conditions are combined. Use condition numbers (starting from 1) with AND / OR operators and parentheses for grouping. For example: 1 for a single condition, 1 AND 2 for both conditions, 1 OR 2 for either condition, (1 OR 2) AND 3 for grouped logic.
sort_by
String
Specify the sort order for the results. Use the field API name wrapped in ASC() for ascending or DESC() for descending order. For example: ASC(start_date) to sort by start date ascending, DESC(created_time) to sort by creation time descending.
view_id
String
The ID of a saved custom view to apply. When provided, the saved view's filter criteria, columns, and sort order are applied. If a filter is also provided, the filter conditions are combined (AND) with the custom view's criteria.
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
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]/projects?page=1&per_page=10&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%7D%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=23806000074760021' \ -H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
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["page"] = "1";
query["per_page"] = "10";
query["filter"] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "23806000074760021";
var uriBuilder = new UriBuilder("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects") { 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);
open Lwt
open Cohttp_lwt_unix
let () =
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\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"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 uri = Uri.of_string ("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&filter=" ^ enc_filter ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_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)
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]/projects/23806000097545166");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166" 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)
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166")!
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()
Identifier of the layout.
You can obtain it from the Get Layouts API (the "id" field in the response).
added_via
String
Enter the source from which the project is added. Accepted values : web,api
is_rollup_project
boolean
Specify whether the project is roll-up project. Accepted values : true or false
budget_info
JSONObject
max length : 80000
Enter the project budget details.
billing_method
String
Enter the billing method. Accepted values : project_hours,staff_hours,fixed_cost,issue_hours,task_or_issue_hours
budget_type
String
Enter the budget type. Accepted values : none,based_on_project,based_on_milestone,based_on_task,based_on_user
tracking_method
String
Enter the tracking method. Accepted values : project_hours,staff_hours,issue_hours,task_or_issue_hours
currency
String
Enter the currency type.
cost_budget
JSONObject
Enter the budget details for the project.
amount
double
Enter the amount.
hourly_budget
String
Enter the hourly budget details.
rate_per_hour
JSONObject
Enter the rate per hour.
amount
double
Enter the amount.
cost_budget_threshold
JSONObject
Enter the budget threshold details.
amount
double
Enter the amount.
hourly_budget_threshold
String
Enter the hourly budget threshold details.
fixed_cost
JSONObject
Enter the fixed cost.
amount
double
Enter the amount.
cost_per_hour
JSONObject
Enter the cost per hour details of the project.
amount
double
Enter the amount.
revenue_budget
JSONObject
Enter the revenue budget.
amount
double
Enter the amount.
budget_threshold
JSONObject
Enter the budget threshold details.
amount
double
Enter the amount.
project_group
JSONObject
max length : 1000
Enter the project group details.
id
String
max length : 30
Identifier of the project group.
You can obtain it from the Get Project Groups API (the "id" field in the response).
sub_module_settings
JSONObject
Specify the sub-module settings, to declare sub-module related configurations.
sub_module_layouts_configuration
JSONObject
Specify the sub-module layouts.
tags
JSONArray
max length : 10000
Enter the tags for the project.
add
JSONArray
array size : 0-5000
Enter the resource for the entity.
id
String
max length : 30
Identifier of the tag to associate.
You can obtain it from the Get Tags API (the "id" field in the response).
remove
JSONArray
array size : 0-5000
Enter the resource for the entity.
id
String
max length : 30
Identifier of the tag to dissociate.
You can obtain it from the Get Tags API (the "id" field in the response).
id
String
max length : 30
Identifier of the tag.
You can obtain it from the Get Tags API (the "id" field in the response).
copy_from
int
Enter the template ID or existing project ID that this new project should be copied from.
You can obtain it from the Get Projects API (the "id" field in the response).
business_hours_id
String
Enter the business hours ID.
You can obtain it from the Get Business Hours API (the "id" field in the response).
<field_name>
String
Enter the value for a project custom field. Replace <field_name> with the custom field's API name in snake_case, as listed in the Custom Fields Guide.
Note: The type is shown as String by default since most basic custom fields accept string values. The actual expected value format and input structure depend on the custom field type.
Refer to the Custom Fields Guide for details.
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
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]/projects' \ -H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \ -H 'Content-Type: application/json' \ -d '{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}'
url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects";
params = Map();
params.put("name", "Website Redesign");
params.put("description", "Redesign the company website with new branding");
params.put("project_type", "active");
params.put("owner", {"zpuid":"4000000002055"});
params.put("is_public_project", false);
params.put("start_date", "2023-12-20");
params.put("end_date", "2024-12-20");
params.put("status", {"id":"4000000062001"});
params.put("layout", {"id":"4000000062001"});
params.put("added_via", "api");
params.put("is_rollup_project", false);
params.put("budget_info", {"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}});
params.put("project_group", {"id":"4000000062001"});
params.put("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("business_hours_id", "7000000197013");
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]/projects');
const payload = JSON.stringify({"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"});
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();
import requests
url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}'
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]/projects");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"business_hours_id\":\"7000000197013\"}");
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]/projects");
request.Content = new StringContent(
@"{""name"":""Website Redesign"",""description"":""Redesign the company website with new branding"",""project_type"":""active"",""owner"":{""zpuid"":""4000000002055""},""is_public_project"":false,""start_date"":""2023-12-20"",""end_date"":""2024-12-20"",""status"":{""id"":""4000000062001""},""layout"":{""id"":""4000000062001""},""added_via"":""api"",""is_rollup_project"":false,""budget_info"":{""billing_method"":""project_hours"",""budget_type"":""based_on_project"",""tracking_method"":""project_hours"",""currency"":""USD"",""cost_budget"":{""amount"":50000.0},""hourly_budget"":""30:00"",""rate_per_hour"":{""amount"":945.25},""cost_budget_threshold"":{""amount"":50000.0},""hourly_budget_threshold"":""20:00"",""fixed_cost"":{""amount"":50000.0},""cost_per_hour"":{""amount"":510.75},""revenue_budget"":{""amount"":50000.0}},""project_group"":{""id"":""4000000062001""},""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""business_hours_id"":""7000000197013""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
(require '[clj-http.client :as client])
(def response
(client/post "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"business_hours_id\":\"7000000197013\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"business_hours_id\":\"7000000197013\"}")
req, _ := http.NewRequest("POST", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects", 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]/projects HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}
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]/projects");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"business_hours_id\":\"7000000197013\"}";
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]/projects';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}
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]/projects")
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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects" 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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}|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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}
'@
$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"business_hours_id\":\"7000000197013\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects")!
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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"business_hours_id":"7000000197013"}
""".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()
Identifier of the layout.
You can obtain it from the Get Layouts API (the "id" field in the response).
added_via
String
Enter the source from which the project is added. Accepted values : web,api
is_rollup_project
boolean
Specify whether the project is rollup project. Accepted values : true or false
budget_info
JSONObject
max length : 80000
Enter the project budget details.
billing_method
String
Enter the billing method. Accepted values : project_hours,staff_hours,fixed_cost,issue_hours,task_or_issue_hours
budget_type
String
Enter the budget type. Accepted values : none,based_on_project,based_on_milestone,based_on_task,based_on_user
tracking_method
String
Enter the tracking method. Accepted values : project_hours,staff_hours,issue_hours,task_or_issue_hours
currency
String
Enter the currency type.
cost_budget
JSONObject
Enter the budget details for the project.
amount
double
Enter the amount.
hourly_budget
String
Enter the hourly budget details.
rate_per_hour
JSONObject
Enter the rate per hour.
amount
double
Enter the amount.
cost_budget_threshold
JSONObject
Enter the budget threshold details.
amount
double
Enter the amount.
hourly_budget_threshold
String
Enter the hourly budget threshold details.
fixed_cost
JSONObject
Enter the fixed cost.
amount
double
Enter the amount.
cost_per_hour
JSONObject
Enter the cost per hour details of the project.
amount
double
Enter the amount.
revenue_budget
JSONObject
Enter the revenue budget.
amount
double
Enter the amount.
project_group
JSONObject
max length : 1000
Enter the project group details
id
String
max length : 30
Identifier of the project group.
You can obtain it from the Get Project Groups API (the "id" field in the response).
tags
JSONArray
max length : 10000
Enter the tags for the project.
add
JSONArray
array size : 0-5000
Enter the resource for the entity.
id
String
max length : 30
Identifier of the tag to associate.
You can obtain it from the Get Project Tags API (the "id" field in the response).
remove
JSONArray
array size : 0-5000
Enter the resource for the entity.
id
String
max length : 30
Identifier of the tag to dissociate.
You can obtain it from the Get Project Tags API (the "id" field in the response).
id
String
max length : 30
Identifier of the tag.
You can obtain it from the Get Project Tags API (the "id" field in the response).
color
String
Enter the color of the project.
business_hours_id
String
Enter the business hours ID.
You can obtain it from the Get Business Hours API (the "id" field in the response).
<field_name>
String
Enter the value for a project custom field. Replace <field_name> with the custom field's API name in snake_case, as listed in the Custom Fields Guide.
Note: The type is shown as String by default since most basic custom fields accept string values. The actual expected value format and input structure depend on the custom field type.
Refer to the Custom Fields Guide for details.
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
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]/projects/23806000097545166' \ -H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \ -H 'Content-Type: application/json' \ -d '{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}'
import requests
url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}'
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]/projects/23806000097545166");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"completed_time\":\"2025-12-30T18:30:00.000Z\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#4573d2\",\"business_hours_id\":\"7000000197013\"}");
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]/projects/23806000097545166");
request.Content = new StringContent(
@"{""name"":""Website Redesign"",""description"":""Redesign the company website with new branding"",""project_type"":""active"",""owner"":{""zpuid"":""4000000002055""},""is_public_project"":false,""start_date"":""2023-12-20"",""end_date"":""2024-12-20"",""completed_time"":""2025-12-30T18:30:00.000Z"",""status"":{""id"":""4000000062001""},""layout"":{""id"":""4000000062001""},""added_via"":""api"",""is_rollup_project"":false,""budget_info"":{""billing_method"":""project_hours"",""budget_type"":""based_on_project"",""tracking_method"":""project_hours"",""currency"":""USD"",""cost_budget"":{""amount"":50000.0},""hourly_budget"":""30:00"",""rate_per_hour"":{""amount"":945.25},""cost_budget_threshold"":{""amount"":50000.0},""hourly_budget_threshold"":""20:00"",""fixed_cost"":{""amount"":50000.0},""cost_per_hour"":{""amount"":510.75},""revenue_budget"":{""amount"":50000.0}},""project_group"":{""id"":""4000000062001""},""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""color"":""#4573d2"",""business_hours_id"":""7000000197013""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
(require '[clj-http.client :as client])
(def response
(client/patch "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"completed_time\":\"2025-12-30T18:30:00.000Z\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#4573d2\",\"business_hours_id\":\"7000000197013\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"completed_time\":\"2025-12-30T18:30:00.000Z\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#4573d2\",\"business_hours_id\":\"7000000197013\"}")
req, _ := http.NewRequest("PATCH", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166", 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]/projects/23806000097545166 HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}
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]/projects/23806000097545166");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"completed_time\":\"2025-12-30T18:30:00.000Z\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#4573d2\",\"business_hours_id\":\"7000000197013\"}";
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]/projects/23806000097545166';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}
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]/projects/23806000097545166")
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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166" 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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}|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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}
'@
$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Website Redesign\",\"description\":\"Redesign the company website with new branding\",\"project_type\":\"active\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":false,\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"completed_time\":\"2025-12-30T18:30:00.000Z\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"api\",\"is_rollup_project\":false,\"budget_info\":{\"billing_method\":\"project_hours\",\"budget_type\":\"based_on_project\",\"tracking_method\":\"project_hours\",\"currency\":\"USD\",\"cost_budget\":{\"amount\":50000.0},\"hourly_budget\":\"30:00\",\"rate_per_hour\":{\"amount\":945.25},\"cost_budget_threshold\":{\"amount\":50000.0},\"hourly_budget_threshold\":\"20:00\",\"fixed_cost\":{\"amount\":50000.0},\"cost_per_hour\":{\"amount\":510.75},\"revenue_budget\":{\"amount\":50000.0}},\"project_group\":{\"id\":\"4000000062001\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#4573d2\",\"business_hours_id\":\"7000000197013\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166")!
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":"Website Redesign","description":"Redesign the company website with new branding","project_type":"active","owner":{"zpuid":"4000000002055"},"is_public_project":false,"start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"2025-12-30T18:30:00.000Z","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"api","is_rollup_project":false,"budget_info":{"billing_method":"project_hours","budget_type":"based_on_project","tracking_method":"project_hours","currency":"USD","cost_budget":{"amount":50000.0},"hourly_budget":"30:00","rate_per_hour":{"amount":945.25},"cost_budget_threshold":{"amount":50000.0},"hourly_budget_threshold":"20:00","fixed_cost":{"amount":50000.0},"cost_per_hour":{"amount":510.75},"revenue_budget":{"amount":50000.0}},"project_group":{"id":"4000000062001"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#4573d2","business_hours_id":"7000000197013"}
""".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()
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]/projects/23806000097545166/trash");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/trash" 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)
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/trash")!
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()
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]/projects/23806000097545166/restore");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/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)
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/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
204 No Content
Delete Project
Remove a project from the trash permanently.
DELETE
/api/v3/portal/[PORTAL_ID]/projects/[PROJECT_ID]
OAuth Scope:
ZohoProjects.projects.DELETE
Path Parameters
Param Name
Data Type
Description
portal_id
String
required regex : [0-9]+
Unique, immutable identifier of the portal in Zoho Projects.
You can obtain it from the Get Portals API (the "id" field in the response).
project_id
String
required regex : [0-9]+
Unique, immutable identifier of the project within the specified portal.
You can obtain it from the Get Projects API (the "id" field in the response).
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]/projects/23806000097545166");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166" 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)
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166")!
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()
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]/projects/23806000097545166/modules");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/modules" 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)
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/modules")!
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()