This module covers issue-related operations within Zoho Projects. Use this API to create, retrieve, update, move, clone, or delete issues. It also supports searching, managing custom fields, kanban settings, reminders, exports, and associated tasks.
Get Issues by Portal
Retrieve all issues from the portal
GET
/api/v3/portal/[PORTAL_ID]/issues
OAuth Scope:
ZohoProjects.bugs.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
required default : 1
Enter a page number
per_page
int
required limit : 1-200 default : 100
Enter the number of entries to be included per page
sort_by
String
Enter the sort order. Accepted values: created_time, due_date or modified_time
view_id
String
Enter the ID of a custom view to apply its saved filters and column settings.
issue_ids
String
Enter the issue IDs to retrieve
You can obtain it from the Get Issues by Portal API (the "id" field in the response).
filter
JSONObject
Specify the filter criteria for the issues
criteria
JSONArray
max length : 10000 array size : >=0
Enter the list of filter conditions. Each condition is combined using the pattern.
cfid
String
Enter the custom field ID. Use this for custom fields.
api_name
String
Enter the API name of the field.
module
String
Enter the module of the field.
field_name
String
Enter the field name.
module_name
String
Enter the module name.
criteria_condition
String
max length : 25
Enter the condition operator for the criteria. Example: is, is_not, contains.
value
JSONArray
max length : 10000 array size : >=0
Enter the values for the condition. Multiple values can be provided.
relative_columns
JSONArray
max length : 10000 array size : >=0
Enter relative date filter details to filter records based on dynamic time.
cfid
String
Enter the custom field ID. Use this for custom fields.
offset
int
Enter the offset value to adjust the current date.
unit
String
Enter the unit. Accepted values: days, hours.
prior
String
Specify how the offset is applied. Accepted values: before, after, add, or subtract.
pattern
String
max length : 300
Enter the logical pattern to combine the filter conditions. Example: 1 AND 2 OR 3
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]/issues?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=23806000074760021&issue_ids=23806000097533216&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%226000000035033%22%2C%22api_name%22%3A%22status%22%2C%22module%22%3A%22-%22%2C%22field_name%22%3A%22project%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%226000000035033%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' \ -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["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "23806000074760021";
query["issue_ids"] = "23806000097533216";
query["filter"] = "{\"criteria\":[{\"cfid\":\"6000000035033\",\"api_name\":\"status\",\"module\":\"-\",\"field_name\":\"project\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"6000000035033\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/issues") { 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_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
let enc_view_id = Uri.pct_encode "23806000074760021" in
let enc_issue_ids = Uri.pct_encode "23806000097533216" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"6000000035033\",\"api_name\":\"status\",\"module\":\"-\",\"field_name\":\"project\",\"module_name\":\"task\",\"criteria_condition\":\"contains\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"6000000035033\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/issues" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&issue_ids=" ^ enc_issue_ids ^ "&filter=" ^ enc_filter) 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 query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "23806000074760021";
query["issue_ids"] = "23806000097533216";
query["filter"] = "{\"criteria\":[{\"cfid\":\"6000000035033\",\"api_name\":\"status\",\"module\":\"-\",\"field_name\":\"project\",\"module_name\":\"task\",\"criteria_condition\":\"is\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"6000000035033\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":1}";
var uriBuilder = new UriBuilder("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues") { 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_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
let enc_view_id = Uri.pct_encode "23806000074760021" in
let enc_issue_ids = Uri.pct_encode "23806000097533216" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"6000000035033\",\"api_name\":\"status\",\"module\":\"-\",\"field_name\":\"project\",\"module_name\":\"task\",\"criteria_condition\":\"is\",\"value\":[1752587000000097269],\"relative_columns\":[{\"cfid\":\"6000000035033\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":1}" in
let uri = Uri.of_string ("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&issue_ids=" ^ enc_issue_ids ^ "&filter=" ^ enc_filter) 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/issues/[ISSUE_ID]");
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/issues/[ISSUE_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)
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]")!
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()
Enter the due date for the issue in ISO 8601 format. Example: 2025-12-31T00:00:00+05:30
release_milestone
JSONObject
max length : 1000
Specify the Release Milestone of the issue
id
String
required max length : 30
Identifier of the release milestone.
You can obtain it from the Get Project Milestones API (the "id" field in the response).
affected_milestone
JSONObject
max length : 1000
Specify the Affected Milestone of the issue
id
String
required max length : 30
Identifier of the affected milestone.
You can obtain it from the Get Project Milestones API (the "id" field in the response).
severity
JSONObject
max length : 1000
Specify the severity level of the issue. Example: Critical, Major, or Minor.
id
String
required max length : 30
Identifier of the picklist option.
You can obtain it from the Get Options API (the "id" field in the response).
is_it_reproducible
JSONObject
max length : 1000
Specify how consistently this issue can be reproduced. Example: Always, Sometimes, or Rarely.
id
String
required max length : 30
Identifier of the picklist option.
You can obtain it from the Get Options API (the "id" field in the response).
classification
JSONObject
max length : 1000
Specify the classification of the issue
id
String
required max length : 30
Identifier of the picklist option.
You can obtain it from the Get Options API (the "id" field in the response).
module
JSONObject
max length : 1000
Specify the module of the project that this issue is related to.
id
String
required max length : 30
Identifier of the module.
You can obtain it from the Get Modules API (the "id" field in the response).
attachments
JSONArray
max length : 10000 array size : 0-10
Enter the IDs of attachments to associate
You can obtain it from the Get Project Attachments API (the "attachment_id" field in the response).
thirdparty_id
JSONArray
max length : 2500
Enter the WorkDrive resource IDs of the files to associate. The WorkDrive resource ID is different from the attachment ID in Zoho Projects. You can pass up to 50 IDs. To get the thirdPartyId, refer to the WorkDrive API User who does not have upload permission to the folder/team folder can upload file upto 20 MB only.
tags
JSONArray
max length : 10000
Enter the IDs of the tags to associate
You can obtain it from the Get Project Tags API (the "id" field in the response).
id
String
required
Identifier of the tag.
You can obtain it from the Get Project Tags API (the "id" field in the response).
followers
JSONArray
max length : 10000
Enter the IDs of the users to follow the issue
You can obtain it from the Get Project Users API (the "id" field in the response).
zpuid
String
required
ZPUID of the user to follow the issue.
You can obtain it from the Get Project Users API (the "id" field in the response).
reminder
JSONObject
max length : 10000
Configure a reminder for this issue to alert assignees or followers before or on the due date.
type
String
required max length : 30
Enter the reminder frequency. Accepted values: daily, on_due_date, before_due_date, or custom_date.
custom_reminder_date
String
regex : ISO-8601
Enter the custom datetime to remind
days_before
int
max length : 20
Enter the number of days before the due date to remind the user
time
String
max length : 20
Enter the time of day to send the reminder. Example: 09:00 AM.
notify_users
JSONArray
required max length : 10000 array size : 0-100
Enter the IDs of users to notify when the reminder is triggered. Maximum 100 users allowed.
zpuid
String
required
ZPUID of the user to notify.
You can obtain it from the Get Project Users API (the "id" field in the response).
reminder_custom_date
String
regex : ISO-8601
Enter the specific date and time to trigger the reminder, in ISO 8601 format. Required when type is custom_date.
rate_per_hour
double
max length : 100
Enter the billing rate per hour for the assignee working on this issue.
cost_rate_per_hour
double
max length : 100
Enter the internal cost per hour for the assignee working on this issue.
integrations
JSONObject
max length : 10000
Enter integration related details
zoho_sprints
JSONObject
max length : 1000
sprint_item_id
String
required max length : 100
Identifier of the Zoho Sprints work item.
This identifier is owned by Zoho Sprints; obtain it from the Zoho Sprints API.
sprint_id
String
required max length : 100
Identifier of the Zoho Sprints sprint.
This identifier is owned by Zoho Sprints; obtain it from the Zoho Sprints API.
epic_id
String
required max length : 100
Identifier of the Zoho Sprints epic.
This identifier is owned by Zoho Sprints; obtain it from the Zoho Sprints API.
point
String
required max length : 100
zoho_cliq
JSONObject
max length : 1000
message_id
String
required max length : 100
Identifier of the Zoho Cliq message.
This identifier is owned by Zoho Cliq; obtain it from the Zoho Cliq API.
channel_id
String
required max length : 100
Identifier of the Zoho Cliq channel.
This identifier is owned by Zoho Cliq; obtain it from the Zoho Cliq API.
notification_message_id
String
required max length : 100
Identifier of the Zoho Cliq notification message.
This identifier is owned by Zoho Cliq; obtain it from the Zoho Cliq API.
zoho_salesiq
JSONObject
max length : 10000
Enter Zoho SalesIQ integration details
chat_id
String
required max length : 100
Enter the Zoho SalesIQ Chat Id
This identifier is owned by Zoho SalesIQ; obtain it from the Zoho SalesIQ API.
chat_name
String
required max length : 255
Enter the Zoho SalesIQ Chat Name
chat_number
String
required max length : 100
Enter the Zoho SalesIQ Chat Number
thread_id
String
required max length : 100
Enter the Zoho SalesIQ Thread Id
This identifier is owned by Zoho SalesIQ; obtain it from the Zoho SalesIQ API.
mail
JSONObject
max length : 50000
Enter Mail integration details
mail_id
String
required max length : 200
account_id
String
Identifier of the Zoho Mail account.
This identifier is owned by Zoho Mail; obtain it from the Zoho Mail API.
attachment_metainfo
JSONArray
id
String
Identifier of the Zoho Mail attachment.
This identifier is owned by Zoho Mail; obtain it from the Zoho Mail API.
attachment_index
int
file_name
String
required max length : 250
attachment_size
int
mail_type
String
mail_link
String
max length : 250
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/23806000097545166/issues' \ -H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \ -H 'Content-Type: application/json' \ -d '{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}'
url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues";
params = Map();
params.put("name", "Authentication Token Expiry Not Enforced on Session Timeout");
params.put("description", "The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.");
params.put("created_by", {"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"});
params.put("flag", "External");
params.put("associated_teams", {"id":"4000000062001"});
params.put("assignee", {"zpuid":"4000000002055"});
params.put("status", {"id":"4000000062001"});
params.put("due_date", "2025-12-12T02:12:00.000Z");
params.put("release_milestone", {"id":"4000000062001"});
params.put("affected_milestone", {"id":"4000000062001"});
params.put("severity", {"id":"4000000062001"});
params.put("is_it_reproducible", {"id":"4000000062001"});
params.put("classification", {"id":"4000000062001"});
params.put("module", {"id":"4000000062001"});
params.put("attachments", ["23806000097533241"]);
params.put("tags", [{"id":"238060000975404352"}]);
params.put("followers", [{"zpuid":"4000000002055"}]);
params.put("reminder", {"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]});
params.put("rate_per_hour", 945.25);
params.put("cost_rate_per_hour", 510.75);
params.put("integrations", {"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}});
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/23806000097545166/issues');
const payload = JSON.stringify({"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}});
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]/projects/23806000097545166/issues")
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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}',
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]/projects/23806000097545166/issues"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}'
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/23806000097545166/issues");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"created_by\":{\"email\":\"richard.santos@zylker.com\",\"name\":\"Richard Santos\",\"zpuid\":\"4000000002055\"},\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"attachments\":[\"23806000097533241\"],\"tags\":[{\"id\":\"238060000975404352\"}],\"followers\":[{\"zpuid\":\"4000000002055\"}],\"reminder\":{\"type\":\"daily\",\"time\":\"22:00\",\"notify_users\":[{\"zpuid\":\"23806000097546091\"}]},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75,\"integrations\":{\"mail\":{\"mail_id\":\"18645000000012345\",\"mail_type\":\"zohomail\"}}}");
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/23806000097545166/issues");
request.Content = new StringContent(
@"{""name"":""Authentication Token Expiry Not Enforced on Session Timeout"",""description"":""The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches."",""created_by"":{""email"":""richard.santos@zylker.com"",""name"":""Richard Santos"",""zpuid"":""4000000002055""},""flag"":""External"",""associated_teams"":{""id"":""4000000062001""},""assignee"":{""zpuid"":""4000000002055""},""status"":{""id"":""4000000062001""},""due_date"":""2025-12-12T02:12:00.000Z"",""release_milestone"":{""id"":""4000000062001""},""affected_milestone"":{""id"":""4000000062001""},""severity"":{""id"":""4000000062001""},""is_it_reproducible"":{""id"":""4000000062001""},""classification"":{""id"":""4000000062001""},""module"":{""id"":""4000000062001""},""attachments"":[""23806000097533241""],""tags"":[{""id"":""238060000975404352""}],""followers"":[{""zpuid"":""4000000002055""}],""reminder"":{""type"":""daily"",""time"":""22:00"",""notify_users"":[{""zpuid"":""23806000097546091""}]},""rate_per_hour"":945.25,""cost_rate_per_hour"":510.75,""integrations"":{""mail"":{""mail_id"":""18645000000012345"",""mail_type"":""zohomail""}}}",
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]/projects/23806000097545166/issues");
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\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"created_by\":{\"email\":\"richard.santos@zylker.com\",\"name\":\"Richard Santos\",\"zpuid\":\"4000000002055\"},\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"attachments\":[\"23806000097533241\"],\"tags\":[{\"id\":\"238060000975404352\"}],\"followers\":[{\"zpuid\":\"4000000002055\"}],\"reminder\":{\"type\":\"daily\",\"time\":\"22:00\",\"notify_users\":[{\"zpuid\":\"23806000097546091\"}]},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75,\"integrations\":{\"mail\":{\"mail_id\":\"18645000000012345\",\"mail_type\":\"zohomail\"}}}");
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]/projects/23806000097545166/issues"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"created_by\":{\"email\":\"richard.santos@zylker.com\",\"name\":\"Richard Santos\",\"zpuid\":\"4000000002055\"},\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"attachments\":[\"23806000097533241\"],\"tags\":[{\"id\":\"238060000975404352\"}],\"followers\":[{\"zpuid\":\"4000000002055\"}],\"reminder\":{\"type\":\"daily\",\"time\":\"22:00\",\"notify_users\":[{\"zpuid\":\"23806000097546091\"}]},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75,\"integrations\":{\"mail\":{\"mail_id\":\"18645000000012345\",\"mail_type\":\"zohomail\"}}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"created_by\":{\"email\":\"richard.santos@zylker.com\",\"name\":\"Richard Santos\",\"zpuid\":\"4000000002055\"},\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"attachments\":[\"23806000097533241\"],\"tags\":[{\"id\":\"238060000975404352\"}],\"followers\":[{\"zpuid\":\"4000000002055\"}],\"reminder\":{\"type\":\"daily\",\"time\":\"22:00\",\"notify_users\":[{\"zpuid\":\"23806000097546091\"}]},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75,\"integrations\":{\"mail\":{\"mail_id\":\"18645000000012345\",\"mail_type\":\"zohomail\"}}}")
req, _ := http.NewRequest("POST", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues", 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/23806000097545166/issues HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}
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/issues");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"created_by\":{\"email\":\"richard.santos@zylker.com\",\"name\":\"Richard Santos\",\"zpuid\":\"4000000002055\"},\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"attachments\":[\"23806000097533241\"],\"tags\":[{\"id\":\"238060000975404352\"}],\"followers\":[{\"zpuid\":\"4000000002055\"}],\"reminder\":{\"type\":\"daily\",\"time\":\"22:00\",\"notify_users\":[{\"zpuid\":\"23806000097546091\"}]},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75,\"integrations\":{\"mail\":{\"mail_id\":\"18645000000012345\",\"mail_type\":\"zohomail\"}}}";
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/issues';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}
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/issues")
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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues"];
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\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"created_by\":{\"email\":\"richard.santos@zylker.com\",\"name\":\"Richard Santos\",\"zpuid\":\"4000000002055\"},\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"attachments\":[\"23806000097533241\"],\"tags\":[{\"id\":\"238060000975404352\"}],\"followers\":[{\"zpuid\":\"4000000002055\"}],\"reminder\":{\"type\":\"daily\",\"time\":\"22:00\",\"notify_users\":[{\"zpuid\":\"23806000097546091\"}]},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75,\"integrations\":{\"mail\":{\"mail_id\":\"18645000000012345\",\"mail_type\":\"zohomail\"}}}" 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]/projects/23806000097545166/issues" 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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}|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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}
'@
$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"created_by\":{\"email\":\"richard.santos@zylker.com\",\"name\":\"Richard Santos\",\"zpuid\":\"4000000002055\"},\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"attachments\":[\"23806000097533241\"],\"tags\":[{\"id\":\"238060000975404352\"}],\"followers\":[{\"zpuid\":\"4000000002055\"}],\"reminder\":{\"type\":\"daily\",\"time\":\"22:00\",\"notify_users\":[{\"zpuid\":\"23806000097546091\"}]},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75,\"integrations\":{\"mail\":{\"mail_id\":\"18645000000012345\",\"mail_type\":\"zohomail\"}}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues")!
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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","created_by":{"email":"richard.santos@zylker.com","name":"Richard Santos","zpuid":"4000000002055"},"flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"attachments":["23806000097533241"],"tags":[{"id":"238060000975404352"}],"followers":[{"zpuid":"4000000002055"}],"reminder":{"type":"daily","time":"22:00","notify_users":[{"zpuid":"23806000097546091"}]},"rate_per_hour":945.25,"cost_rate_per_hour":510.75,"integrations":{"mail":{"mail_id":"18645000000012345","mail_type":"zohomail"}}}
""".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()
Enter the updated due date for the issue in ISO 8601 format. Example: 2025-12-31T00:00:00+05:30
tags
JSONArray
max length : 10000
Update the tags associated with this issue. Use add to attach new tags or remove to detach existing ones.
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).
release_milestone
JSONObject
max length : 1000
Specify the Release Milestone of the issue
id
String
required max length : 30
Enter the ID or enter null to clear the value
You can obtain it from the Get Project Milestones API (the "id" field in the response).
affected_milestone
JSONObject
max length : 1000
Specify the Affected Milestone of the issue
id
String
required max length : 30
Enter the ID or enter null to clear the value
You can obtain it from the Get Project Milestones API (the "id" field in the response).
severity
JSONObject
max length : 1000
Specify the severity of the issue
id
String
required max length : 30
Identifier of the picklist option.
You can obtain it from the Get Options API (the "id" field in the response).
is_it_reproducible
JSONObject
max length : 1000
Specify if the issue is reproducible
id
String
required max length : 30
Identifier of the picklist option.
You can obtain it from the Get Options API (the "id" field in the response).
classification
JSONObject
max length : 1000
Specify the classification of the issue
id
String
required max length : 30
Identifier of the picklist option.
You can obtain it from the Get Options API (the "id" field in the response).
module
JSONObject
max length : 1000
Specify the module of the issue
id
String
required max length : 30
Identifier of the module.
You can obtain it from the Get Modules API (the "id" field in the response).
rate_per_hour
double
max length : 100
Enter the updated billing rate per hour for the assignee working on this issue.
cost_rate_per_hour
double
max length : 100
Enter the cost per hour for the assignee working on this issue.
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/issues/[ISSUE_ID]' \ -H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \ -H 'Content-Type: application/json' \ -d '{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}'
url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]";
params = Map();
params.put("name", "Authentication Token Expiry Not Enforced on Session Timeout");
params.put("description", "The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.");
params.put("flag", "External");
params.put("associated_teams", {"id":"4000000062001"});
params.put("assignee", {"zpuid":"4000000002055"});
params.put("status", {"id":"4000000062001"});
params.put("due_date", "2025-12-12T02:12:00.000Z");
params.put("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("release_milestone", {"id":"4000000062001"});
params.put("affected_milestone", {"id":"4000000062001"});
params.put("severity", {"id":"4000000062001"});
params.put("is_it_reproducible", {"id":"4000000062001"});
params.put("classification", {"id":"4000000062001"});
params.put("module", {"id":"4000000062001"});
params.put("rate_per_hour", 945.25);
params.put("cost_rate_per_hour", 510.75);
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]/projects/23806000097545166/issues/[ISSUE_ID]');
const payload = JSON.stringify({"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75});
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]/projects/23806000097545166/issues/[ISSUE_ID]")
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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}',
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]/projects/23806000097545166/issues/[ISSUE_ID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}'
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/issues/[ISSUE_ID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75}");
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/issues/[ISSUE_ID]");
request.Content = new StringContent(
@"{""name"":""Authentication Token Expiry Not Enforced on Session Timeout"",""description"":""The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches."",""flag"":""External"",""associated_teams"":{""id"":""4000000062001""},""assignee"":{""zpuid"":""4000000002055""},""status"":{""id"":""4000000062001""},""due_date"":""2025-12-12T02:12:00.000Z"",""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""release_milestone"":{""id"":""4000000062001""},""affected_milestone"":{""id"":""4000000062001""},""severity"":{""id"":""4000000062001""},""is_it_reproducible"":{""id"":""4000000062001""},""classification"":{""id"":""4000000062001""},""module"":{""id"":""4000000062001""},""rate_per_hour"":945.25,""cost_rate_per_hour"":510.75}",
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]/projects/23806000097545166/issues/[ISSUE_ID]");
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\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75}");
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]/projects/23806000097545166/issues/[ISSUE_ID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75}")
req, _ := http.NewRequest("PATCH", "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]", 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/issues/[ISSUE_ID] HTTP/1.1
Host: https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}
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/issues/[ISSUE_ID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75}";
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/issues/[ISSUE_ID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}
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/issues/[ISSUE_ID]")
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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]"];
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\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75}" 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]/projects/23806000097545166/issues/[ISSUE_ID]" 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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}|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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}
'@
$response = Invoke-RestMethod -Uri "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Authentication Token Expiry Not Enforced on Session Timeout\",\"description\":\"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.\",\"flag\":\"External\",\"associated_teams\":{\"id\":\"4000000062001\"},\"assignee\":{\"zpuid\":\"4000000002055\"},\"status\":{\"id\":\"4000000062001\"},\"due_date\":\"2025-12-12T02:12:00.000Z\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"release_milestone\":{\"id\":\"4000000062001\"},\"affected_milestone\":{\"id\":\"4000000062001\"},\"severity\":{\"id\":\"4000000062001\"},\"is_it_reproducible\":{\"id\":\"4000000062001\"},\"classification\":{\"id\":\"4000000062001\"},\"module\":{\"id\":\"4000000062001\"},\"rate_per_hour\":945.25,\"cost_rate_per_hour\":510.75}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]")!
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":"Authentication Token Expiry Not Enforced on Session Timeout","description":"The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.","flag":"External","associated_teams":{"id":"4000000062001"},"assignee":{"zpuid":"4000000002055"},"status":{"id":"4000000062001"},"due_date":"2025-12-12T02:12:00.000Z","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"release_milestone":{"id":"4000000062001"},"affected_milestone":{"id":"4000000062001"},"severity":{"id":"4000000062001"},"is_it_reproducible":{"id":"4000000062001"},"classification":{"id":"4000000062001"},"module":{"id":"4000000062001"},"rate_per_hour":945.25,"cost_rate_per_hour":510.75}
""".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" : "Authentication Token Expiry Not Enforced on Session Timeout",
"description" : "The security audit conducted on May 6th identified a critical vulnerability in the authentication module. Session tokens are not invalidated upon timeout, allowing unauthorized access to active user sessions. Immediate remediation is required to prevent potential data breaches.",
"flag" : "External",
"associated_teams" : {
"id" : "4000000062001"
},
"assignee" : {
"zpuid" : "4000000002055"
},
"status" : {
"id" : "4000000062001"
},
"due_date" : "2025-12-12T02:12:00.000Z",
"tags" : [ {
"add" : [ {
"id" : "4000000062001"
} ],
"remove" : [ {
"id" : "4000000062001"
} ],
"id" : "4000000062001"
} ],
"release_milestone" : {
"id" : "4000000062001"
},
"affected_milestone" : {
"id" : "4000000062001"
},
"severity" : {
"id" : "4000000062001"
},
"is_it_reproducible" : {
"id" : "4000000062001"
},
"classification" : {
"id" : "4000000062001"
},
"module" : {
"id" : "4000000062001"
},
"rate_per_hour" : 945.25,
"cost_rate_per_hour" : 510.75
}
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/issues/[ISSUE_ID]");
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/issues/[ISSUE_ID]" 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/issues/[ISSUE_ID]")!
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
200{
"status" : "success"
}
Get Issue Description
Retrieve the description of the issue in a project
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/issues/[BUG_ID]/description");
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/issues/[BUG_ID]/description" 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/issues/[BUG_ID]/description")!
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{
"description" : "A critical bug has been identified that halts the production build process. This issue needs immediate attention as it affects the deployment of the latest version of our application"
}
Move Issue
Move an issue to another project. Use this API to move an issue by specifying the destination project ID.
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/issues/[BUG_ID]/move");
request.Content = new StringContent(
@"{""to_project"":""23806000097533251""}",
Encoding.UTF8,
"application/json"
);
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/issues/[BUG_ID]/move" 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|{"to_project":"23806000097533251"}|json} in
Lwt_main.run (
Client.post ~headers ~body 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.Post, "https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[BUG_ID]/clone");
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/issues/[BUG_ID]/clone" 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/issues/[BUG_ID]/clone")!
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 query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(last_modified_time)";
query["filter"] = "{\"criteria\":[{\"cfid\":\"6000000035033\",\"api_name\":\"status\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"6000000035033\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[BUG_ID]/activities") { 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_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"6000000035033\",\"api_name\":\"status\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"6000000035033\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projects.zoho.com/api/v3/portal/[PORTAL_ID]/projects/23806000097545166/issues/[BUG_ID]/activities" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&filter=" ^ enc_filter) 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/issues/[BUG_ID]/statustransition");
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/issues/[BUG_ID]/statustransition" 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/issues/[BUG_ID]/statustransition")!
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()
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.1/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]/status-timeline");
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.1/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]/status-timeline" 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.1/portal/[PORTAL_ID]/projects/23806000097545166/issues/[ISSUE_ID]/status-timeline")!
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()