Zoho Projects provides a comprehensive set of REST APIs to manage your projects, connect third party applications, and transfer or retrieve data from Zoho Projects.
API Root Endpoint
https://projectsapi.zoho.com
Zoho Projects APIs require a mandatory header.
-
Authorization: The OAuth access token to authenticate the user accessing data.
Example
$ curl -X GET https://projectsapi.zoho.com/api/v3/portal/{portal_id}/tasks -H "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
Version-3 (V3) builds on the existing Zoho Projects API by introducing a more consistent structure across endpoints and extending support for common integration needs. Updates to areas like date formats, filtering, custom fields, and pagination make it easier to work with data in a predictable way. In this section, you'll find what's new in v3, what has been updated, and what to review when moving from v2.
V3 API - Quick Example
V3 introduces a more consistent and structured way to work with the Zoho Projects API. It simplifies how data is formatted, how requests are constructed, and how responses are handled, making integrations easier to build and maintain. These updates also bring more clarity when working with filters, custom fields, and large datasets.
V3 Improvements at a Glance
All date and time values follow a single ISO 8601 format across endpoints. This ensures consistent parsing and removes the need to handle multiple formats.
| Type | V2 | V3 |
|---|---|---|
| Date only | "05-26-2014" (MM-DD-YYYY) |
"2024-05-26" (YYYY-MM-DD) |
| Datetime | "05-13-2014 05:57 PM" (12-hour) |
"2024-05-26T11:25:58.000Z" (ISO 8601) |
| Human-readable | "May 26, 2014" |
removed |
| Epoch | 1399620397255 |
removed |
| Date input format | MM-DD-YYYY |
YYYY-MM-DD |
The *_long epoch fields are removed. ISO 8601 timestamps
are universally parseable.
You can define multiple conditions within a single request using a structured filter object. Filtering is processed entirely on the server, so only relevant records are returned.
-
Supported conditions:
isis_notcontainsstarts_withbeforeafteris_emptyis_not_emptybetween
-
Pattern logic: Combine conditions using
AND,OR, and grouping - e.g."(1 OR 2) AND 3" -
Custom field support: Use the
api_nameof any custom field as the criteriafield_name
For the complete syntax reference, see the Filter Guide.
Advanced Filter - Overdue & Assigned
Custom fields now use clear and consistent api_name values. This makes it easier to reference them across requests, filters, and responses without additional mapping.
| V2 | V3 | |
|---|---|---|
| In requests | UDF_CHAR1, UDF_LONG2 |
expected_date, priority_level |
| In responses | Same UDF_ keys, no context | Same api_name, consistent everywhere |
- Stable references - field identifiers don't shift when other fields are added or removed
-
Works everywhere - same
api_namein requests, responses, and filter criteria
For full details, see Custom Fields.
V3 Custom Field in Response
V3 Custom Field in Filter
The same field structure is used in both requests and responses. This improves predictability and reduces the need for transformation logic when handling API data.
| Aspect | V2 /restapi | V3 /api/v3 |
|---|---|---|
| Content Type | application/x-www-form-urlencoded | application/json |
| Body Style | Flat, form-encoded parameters | JSON body, nested objects |
| Dates | Mixed formats (MM-DD-YYYY, epoch, text) | ISO 8601 everywhere |
| Related Data | Flat fields (person_responsible, assignee_name) | Grouped objects (assignee, status) |
| List Responses | No pagination metadata | page_info block with has_next_page |
V3 Request (JSON)
V3 Response
Pagination is now page-based, making it easier to work with large datasets.
- Use page and per_page to control results
- has_next_page indicates if more records are available
- Avoids duplicate or skipped records
- No need for manual offset calculations
For full details and examples, see Pagination.
All endpoints in v3 follow a consistent URL pattern. The base URL is simplified and standardized, and trailing slashes are no longer required. This makes it easier to construct and predict endpoint URLs across the API.
| V2 | V3 | |
|---|---|---|
| Base URL | /restapi/portal/{portal_id}/projects/ | /api/v3/portal/{portal_id}/projects |
| Trailing slashes | Some endpoints require trailing / |
No trailing slashes |
| Operation | V2 | V3 |
|---|---|---|
| List tasks | GET /restapi/portal/{portal_id}/projects/{project_id}/tasks/ | GET /api/v3/portal/{portal_id}/projects/{project_id}/tasks |
-
If you're migrating from V2, update all endpoint URLs - the
/restapi/prefix is replaced with/api/v3/.
| Area | V2 (/restapi) | V3 (/api/v3) |
|---|---|---|
| URL Pattern | /restapi/portals/ | /api/v3/portals |
| Date Format | "05-26-2014" or "May 26, 2014" or 1399620397255 |
"2024-05-26" (date only) or "2024-05-26T11:25:58.000Z" (ISO 8601)
|
| Pagination | index + range (offset-based) |
page + per_page with has_next_page |
| HTTP Method for Updates | POST | PATCH |
| Custom Fields | UDF_ prefix (e.g. UDF_CHAR1) |
api_name (e.g. "expected_date") |
| Request / Response Schema | Fields sent in requests often differed from response field names | Request and response use the same field structure throughout |
| API Coverage | Limited modules and endpoints | Additional modules and endpoints, significantly expanding the overall API surface area |
V3 Update Task Example
Zoho Projects currently supports the following methods.
Zoho Projects uses HTTP status codes to indicate success or failure of API calls. Status codes 2xx indicate success, 4xx indicate error in the information provided, and 5xx indicate server side errors. The following table lists some commonly used HTTP status codes.
| Status Code | Description |
|---|---|
| 200 | OK |
| 201 | Created |
| 202 | Accepted |
| 204 | No content |
| 206 | Partial Data |
| 207 | Multi-status |
| 400 | Bad request |
| 401 | Unauthorized |
| 402 | Payment Required |
| 403 | Forbidden (Unauthorised access) |
| 405 | Method not allowed (Method called is not supported for the API invoked) |
| 409 | Conflict |
| 429 | Too Many Requests |
| 500 | Internal error |
| 501 | Not Supported |
Besides HTTP status codes and their corresponding error messages, error responses for Zoho Projects APIs also include a machine-parsable errorCode param to simplify error handling.
The different errorCodes and their uses are described below
Please check if the URL you are trying to access is correct.
Resolution: The request URL specified is incorrect. Specify a valid request URL.
URL_RULE_NOT_CONFIGURED
This errorCode appears if the OAuthToken is invalid or has expired.
Resolution: Regenerate OAuthToken and try again.
INVALID_OAUTHTOKEN
The HTTP request specified has an invalid input parameter.
Resolution: The request URL input parameter specified is incorrect. Specify a valid request input parameter URL.
INVALID_INPUTSTREAM
The http request method type is not a valid one
Resolution: You have specified an invalid HTTP method to access the API URL. Specify a valid request method.
INVALID_METHOD
The HTTP request specified has an invalid parameter value.
Resolution: The request URL input parameter value specified is incorrect. Specify a valid request input parameter value.
INVALID_PARAMETER_VALUE
Server encountered an unexpected error. Contact
Resolution: support@zohoprojects.com
INTERNAL_SERVER_ERROR
Zoho Projects APIs are governed by rate limits to ensure fair usage and optimal performance of all users.
- Each API can be invoked up to 200 times within a 2-minute window.
- The limit is applied per API endpoint.
Each API response includes the following headers to help you monitor your usage:
RateLimit: Total allowed requests in the current window (e.g., 200).RateLimit-Remaining: Remaining requests available in the current window.RateLimit-Window: Duration of the rate limit window (e.g., 120 seconds).RateLimit-Window-Unit: Time unit for the rate limit window (e,g., seconds).Retry-After: Time (in seconds) to wait before retrying the request after the rate limit has been exceeded.
If the number of requests exceeds the allowed limit:
- The specific API will be temporarily blocked for 10 minutes.
- During this period, all further requests to that API will fail.
- A
Retry-Afterheader will be included in the response, indicating the remaining time (in seconds) before the API becomes available again.
- The restriction applies only to the API that exceeds the limit, not all APIs.
- After the 10-minute cooldown, the API will become available automatically.
- Continuous violations may impact application performance and reliability.
To avoid hitting rate limits:
- Implement retry mechanisms using the
Retry-Afterheader. - Use exponential backoff instead of immediate retries.
- Avoid sending unnecessary or duplicate requests.
- Use batch APIs (if available) to reduce the number of calls.
- Cache frequently used data whenever possible.
Request
Rate Limit Info
v3 uses page-based pagination on all list endpoints. Pass page and per_page as query parameters to control which page of results is returned.
| Parameter | Type | Description |
|---|---|---|
page |
Integer | Page number (starting from 1). Defaults to 1 if omitted. |
per_page |
Integer | Number of records per page. Defaults to 100 if omitted. Supported values: 1-200. |
Every list response includes a page_info block. The has_next_page flag tells your client precisely when to stop fetching — no offset calculations, no risk of duplicate or skipped records.
| Field | Type | Description |
|---|---|---|
page |
Integer | Current page number |
per_page |
Integer | Records per page |
page_count |
Integer | Total number of records in the result set |
has_next_page |
Boolean | true if more pages exist, false if this is the last page |
Request
page_info Response
Understand, locate, and use API names for modules, fields, and related apis in Zoho Projects.
An API name is a unique identifier assigned to every module and field in Zoho Projects.
While display names (labels shown in the UI) can be renamed and may include spaces or special characters, API names provide a consistent reference that remains unchanged across API requests and responses.
| Aspect | Display Name | API Name |
|---|---|---|
| Purpose | Label shown in the UI | Identifier used in APIs |
| Example | Start Date | start_date |
| Stability | Can be changed | Remains constant |
| Used In | Forms, views, layouts | Requests, responses, filters |
API names are used in all programmatic interactions with Zoho Projects.
API names appear as keys in request payloads and response data. Fields such as priority, status, and department are referenced using their API names rather than display labels.
This applies to operations such as creating, updating, retrieving, and filtering records.
API names for modules and fields in Zoho Projects can be accessed through the product or using APIs.
API names for custom fields are available directly within the Fields section in Zoho Projects, alongside other field details.
- Navigate to Setup > Customization > Fields.
- Select the required module.
- Use the Search Fields option to locate a specific field from the Fields list.
- Copy the API name to use it in the API operations.
The Modules API returns metadata for all modules in a portal, including their API names. The Fields API returns metadata for all fields in a module, including API names, data types, and whether a field is custom. Together, they provide a complete reference of available modules and fields for API usage.
- Refer to Get Modules for the list of modules and their API names.
- Refer to Get Fields Info for field-level details including API names.
Send custom field values when creating or updating records through Zoho Projects APIs.
Custom fields are configured within module layouts to capture additional information based on business needs. Use the corresponding field API names to pass values in the request payload.
For example, a checkbox custom field can be used to track a project condition, and its value can be submitted as true or false in the API request.
- Custom field API names are currently supported only in the Tasks and Projects APIs.
- Use the Custom Fields metadata API to retrieve field details such as API names and field types before passing values.
Zoho Projects supports various custom field types, such as text, numeric, URL, date, and time. Below are
the field types available in the Create and Update APIs.
- Send all inputs as an input stream (application/json).
- Use API names for custom fields.
Captures text in a single line. Maximum length: 200 characters
JSON Schema
Example
Captures text in multiple lines. Use "\n" to separate lines. Maximum length: 1,000 characters
JSON Schema
Example
Allows selection of a single option from a predefined list. Maximum options: 50
JSON Schema
Example
Allows selection of multiple options from a predefined list. You can add or remove values dynamically, or replace the existing values. Maximum selectable options: 100
- The add and remove options optimize the update process for Multi-Select fields, eliminating the additional GET call to retrieve existing values before updating.
- You can directly add or remove values in an Update API request or use the Create API format.
Sample Input of Multi-Select Field in Create APIs
Example
Sample Input of Multi-Select Field in Create APIs
Example
Allows selection of a single user.
JSON Schema
Example
Allows selection of multiple users from a predefined list. You can add or remove values dynamically, or replace the existing values. Maximum selectable users: 500
- The add and remove options optimize the update process for Multi-User fields, eliminating the additional GET call to retrieve existing values before updating.
- You can directly add or remove values in an Update API request or use the Create API format.
Sample Input of Multi-User Field in Create APIs
Example
Sample Input of Multi-User Field in Update APIs
Example
Captures date in the yyyy-MM-dd format (ISO 8601).
JSON Schema
Example
Captures the time in HH:MM format.
JSON Schema
Example
Captures date and time in ISO 8601 format. Use yyyy-MM-dd'T'HH:mm:ss'Z' for UTC or yyyy-MM-dd'T'HH:mm:ss[+|-]HH:mm for other time zones. (ISO 8601 Time Stamp format).
JSON Schema
Example
Captures boolean values (true or false) for a condition.
JSON Schema
Example
Captures currency values with currency code, formatted amount, currency ID, and raw amount. Maximum length: 100 characters
JSON Schema
Example
Captures percentage values as numbers. Maximum length: 20 characters
JSON Schema
Example
Captures whole numbers. Maximum length: 19 digits
JSON Schema
Example
Captures decimal values. Maximum length: 17 digits
JSON Schema
Example
Captures email addresses. Maximum length: 200 characters
JSON Schema
Example
Captures phone numbers (Maximum length: 15 characters, including + and ()).
JSON Schema
Example
Captures web links. If no protocol is specified, https:// is used by default. Maximum length: 200 characters
JSON Schema
Example
The filter query parameter in Zoho Projects v3 enables retrieving only records that match defined conditions. This approach avoids fetching all records and applying filtering on the client side. This guide explains how to construct filter payloads, available conditions, and supported value formats.
- Pass the
filterparameter as a URL-encoded JSON string - Combine one or more conditions using a pattern expression
- Status and date presets are currently supported on specific modules only; support for the other modules will be provided soon.
Filter Example
URL-Encoded Filter in GET Request
GET /api/v3/portal/{portal_id}/projects/{project_id}/tasks?filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22name%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22review%22%5D%7D%5D%2C%22pattern%22%3A%221%22%7D
The filter payload is organized into key components that together represent how the conditions are defined and applied within a request : criteria and pattern.
| Property | Data Type | Description |
|---|---|---|
| criteria | Array required |
Each property within the filter payload represents a specific part of a condition, contributing to how fields, operators, and values are interpreted during filtering. |
| field_name | String required |
API name of the field to filter (e.g. status, due_date, name). Use the Get Field Info API to retrieve valid field names for a module. |
| criteria_condition | String required |
Filter operation. Available conditions depend on the field type. See Conditions Reference. |
| value | Array<String> optional |
Required for most conditions. Always an array. Omit for presets (today, is_empty). between requires exactly 2 values. |
| pattern | String required |
Defines how criteria are combined using AND / OR logic. References criteria by their 1-based index in the array order (e.g. first criterion = 1, second = 2). Example: "(1 AND 2) OR 3". |
The pattern shows how criteria are combined and evaluated together. Each condition is referenced by its position in the list (starting from 1), and operators like AND, OR are used to define the relationship between them. Parentheses () can be used to group conditions and control how they are applied. The pattern is always required, with "1" used when only a single condition is present.
| Pattern | Meaning |
|---|---|
"1" | Single criterion |
"1 AND 2" | Both must match |
"1 OR 2" | Either can match |
"1 AND 2 AND 3" | All three must match |
"(1 AND 2) OR 3" | 1 & 2 together, or 3 alone |
The value field represents the input used to evaluate a condition and is always structured as an array of strings. It is required for most conditions, while presets do not include a value. Range-based conditions such as between using exactly two values, and the format varies based on the field type.
| Data Type | Format | Example | Notes |
|---|---|---|---|
| Text | String | ["review"] | Single value for most conditions |
| Date (specific) | YYYY-MM-DD | ["2024-11-04"] | Single date value |
| Date (range) | YYYY-MM-DD | ["2024-11-01", "2024-11-30"] | Exactly 2 values for between / not_between |
| User | ZPUID | ["4000000006061"] | Single value for most conditions |
| Pick List | Option name | ["High"] | Use the display name, not the ID |
| Multi Pick List | Option ID | ["4000000046001"] | Use the option ID, not the display name |
| Check Box | "true" / "false" or "1" / "0" | ["true"] | Both formats accepted |
| Numeric | Numeric string | ["100"] | Numbers passed as strings |
- Only
isandis_notsupport multiple values (e.g.["high", "medium"]). iswith multiple values = OR logic (matches any).is_notwith multiple values = AND logic (excludes all).- All other conditions accept a single value (or exactly 2 for
between/not_between). - Preset conditions (
today,is_empty, etc.) do not require avaluearray.
AND Pattern
OR Pattern
Nested Pattern
Used for text-based fields such as name, email, and custom fields, where matching is based on keywords or exact values. All comparisons are case-insensitive.
| Condition | API Value | What it does | Value |
|---|---|---|---|
| Contains | contains | Matches if the field has the substring anywhere | ["review"] |
| Doesn't contain | not_contains | Excludes records containing the substring | ["test"] |
| Starts with | starts_with | Matches the beginning of the field value | ["API"] |
| Ends with | ends_with | Matches the end of the field value | ["v2"] |
| Is | is | Exact match. Multiple values = OR logic | ["High"] or ["High", "Medium"] |
| Is not | is_not | Excludes exact matches. Multiple values = AND logic | ["Low", "None"] |
contains,not_contains,starts_with, andends_withaccept only a single value. Onlyisandis_notsupport multiple values in the array.
Text: Contains
Multi-Value IS
Used for numeric and date fields, where values are evaluated based on comparisons like greater than, less than, or within a range.
| Condition | API Value | What it does | Value |
|---|---|---|---|
| Is | is | Exact match. Multiple values = OR logic | ["100"] or ["100", "200"] |
| Is not | is_not | Excludes exact matches. Multiple values = AND logic | ["0"] |
| Less than | less_than | Field value is less than the given value | ["50"] |
| Less than or equal | less_than_or_equal | Field value is less than or equal | ["50"] |
| Greater than | greater_than | Field value is greater than the given value | ["50"] |
| Greater than or equal | greater_than_or_equal | Field value is greater than or equal | ["50"] |
| Between | between | Field value within range (inclusive) | ["10", "100"] |
| Not between | not_between | Field value outside range | ["10", "100"] |
- For date fields, use
YYYY-MM-DDformat. Single value:["2024-11-01"]. Range:["2024-11-01", "2024-11-30"].
Date: Between
Numeric: Greater Than
Includes ready-to-use conditions based on dates, evaluated relative to the current date without requiring manual input.
| Condition | What it matches |
|---|---|
today | Current date |
yesterday | Previous day |
tomorrow | Next day |
till_yesterday | All dates up to yesterday |
overdue | Past due date |
today_overdue | Due today & overdue |
| Condition | What it matches |
|---|---|
this_week | Current week |
last_week | Previous week |
next_week | Upcoming week |
next_7_days | Next 7 days |
| Condition | What it matches |
|---|---|
this_month | Current month |
last_month | Previous month |
next_month | Upcoming month |
next_30_days | Next 30 days |
| Condition | What it matches |
|---|---|
unscheduled | No date set |
Date Preset: Today
Date Preset: This Week
Date Preset: This Month
Unscheduled Date Field
Includes predefined conditions that group records based on their status, such as open or closed.
| Condition | Description |
|---|---|
all_open | All open statuses |
all_closed | All closed statuses |
- To filter by a specific status, use
isoris_notwith the status ID. Example:"value": ["4000000012345"].
Status Preset: All Open
Used for fields related to users, including assignments, reporting structure, and user-specific states. (requires ZPUID in the value array):
| Condition | API Value | What it does |
|---|---|---|
| Is | is | Records assigned to the given user(s). Multiple values = OR logic |
| Is not | is_not | Excludes records assigned to the given user(s) |
User: Is
Overdue + Assigned to Me
Used to identify fields that do not have any value assigned.
| Condition | Description |
|---|---|
is_empty | Field has no value |
- Useful for finding incomplete records, such as tasks with no due date or unassigned tasks.
- For date fields, use
unscheduledinstead ofis_emptyto filter records with no date set.
Empty Field Check
Ready-made filter payloads for the most common requests. Copy a payload, URL-encode it, and pass it as the filter query parameter.
These filters work across modules such as tasks, issues, and custom modules.
Returns all open tasks in a single request.
Uses status with the custom_condition operator and the ${ALL_OPEN} value.
Filter by Open Status
Returns all closed tasks in a single request.
Uses status with the custom_condition operator and the ${ALL_CLOSED} value.
Filter by Closed Status
Returns tasks in a specific status.
Uses status with the is condition and the status ID as the value.
Filter by Status
Returns tasks owned by a specific user.
Uses owner with the is condition and the user's ZPUID as the value.
Filter by Owner
Returns tasks whose name contains the given text.
Uses name with the contains condition and the search text as the value.
Filter by Name
Returns tasks created after a specific point in time.
Uses created_time with the greater_than condition and a YYYY-MM-DD value.
Filter by Created Time
Returns tasks last updated after a specific date.
Uses last_updated_time with the greater_than condition and a YYYY-MM-DD value.
Filter by Last Modified Time
These filters are available in the Tasks module only.
Returns only subtasks (tasks that have a parent task).
Uses has_parents with value true. Set false to return only top-level tasks. Accepts "true" / "false" or "1" / "0".
Filter by Subtask
Returns the subtasks of a specific parent task.
Uses parent_task with the is condition and the parent task ID as the value.
Filter by Parent Task
Returns tasks that belong to a task list whose name contains the given text.
Uses module_name set to tasklist to filter on the related module's name field.
Filter by Task List
Zoho Projects APIs use OAuth 2.0 for authentication. This page gives you an overview of the authentication process. For complete details on OAuth 2.0 flows, registration, token management, and more, refer to Zoho OAuth 2.0 documentation.
To access Zoho Projects APIs, your application needs an access token obtained through one of the OAuth 2.0 flows. At a high level, the steps are:
- Register your application in the Zoho API console.
- Get consent from user to access their data and obtain an access token.
- Call Zoho Projects APIs using the access token.
Access tokens expire periodically. The expiry duration is returned as expires_in (seconds) in the access token response.
To maintain uninterrupted access, you can request for an optional refresh token, store it, and use it to generate new access tokens as needed.
- Access tokens are required for every API request.
- Refresh tokens can be used to generate new access tokens without requiring user re-authorization.
- Users can revoke an application's access at any time, which invalidates the associated tokens.
For more details on token management, refer to Zoho OAuth 2.0 documentation.
Zoho supports OAuth flows for different application types (server-based, client-based, mobile & desktop-based, limited input devices, and self client). You can choose the flow that matches your application.
For detailed information, refer to the OAuth documentation.
Zoho operates data centers in multiple regions. If your application serves users across regions, you must enable Multi DC support in the API console and use region-specific endpoints for both OAuth and Zoho Projects API calls.
Zoho Projects APIs require OAuth scopes to define the level of access your application needs. When requesting for access token, request only the scopes your application requires. These will be displayed to the users when asking for consent.
| Scope | Description |
|---|---|
| ZohoProjects.projects.READ | Access project data (read-only) |
| ZohoProjects.projects.ALL | Full access to projects |
| ZohoProjects.tasks.ALL | Full access to tasks |
| ZohoProjects.timesheets.ALL | Full access to time logs |
To request multiple scopes, separate them with commas:
scope=ZohoProjects.projects.READ,ZohoProjects.tasks.ALL
For more details about scope format, see OAuth Scopes.
To authenticate your API calls, include the access token in the Authorization header of every API request with the prefix Bearer.
Syntax
Authorization: Bearer {access-token-value}
Example
curl -X GET "https://www.zohoapis.com/projects/v3/portals/" -H "Authorization: Bearer 1000.abc123def456..."
Use this method to generate the organization-specific grant token if your application does not have a domain and a redirect URL.You can also use this option when your application is a standalone server-side application performing a back-end job.
- Go to Zoho Developer Console and log in with your Zoho Projects username and password.
- Choose Self Client from the list of client types, and click Create Now.
- Click OK in the pop up to enable a self client for your account.
-
Now, your client ID and client secret are displayed under the Client Secret tab.
- Click the Generate Code tab and enter the required scope separated by commas. Refer to our list of Scopes, for more details. The system throws an 'Enter a valid scope' error when you enter one or more incorrect scopes.
- Select the Time Duration for which the grant token is valid. Please note that after this time, the grant token expires.
-
Enter a description and click Create.
-
The organization-specific grant token code for the specified scope is displayed. Copy the grant token.
When making API calls, you must use the base URL corresponding to your user's data center. The correct URL is returned as api_domain in the access token response.
| Data center | API base URL |
|---|---|
| United States (US) | https://www.zohoapis.com |
| European Union (EU) | https://www.zohoapis.eu |
| India (IN) | https://www.zohoapis.in |
| Australia (AU) | https://www.zohoapis.com.au |
| Japan (JP) | https://www.zohoapis.jp |
| Canada (CA) | https://www.zohoapis.ca |
Never hardcode a single region's URL. Always use the api_domain from the access token response. See Multi-DC Support.
This module handles portal-related operations in Zoho Projects. Use this API to create a new portal, export portal data, manage portal settings, and retrieve details such as portal license data and allowed features.
Retrieve all portals accessible to the current user. Use this API to list available portals along with their basic details.
OAuth Scope:
ZohoProjects.portals.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portals' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portals";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portals');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portals";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portals"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portals");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portals");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portals");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portals"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portals", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portals HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portals");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portals';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portals")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portals"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portals" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portals" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portals"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portals")!
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
Retrieve details of a specific portal including configuration and settings.
OAuth Scope:
ZohoProjects.portals.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528")!
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
This module covers all operations related to databackup. Use these APIs to schedule, get status, get history and download the databackup.
Schedule a data backup for the portal. Use this API to generate a downloadable backup file of portal data. If a backup was already generated within the last 24 hours, the existing export details and download URL will be returned.
OAuth Scope:
ZohoProjects.portals.READ, ZohoFiles.files.READ
Parameter
String
Enter a password to secure the downloaded backup file. This code will be required when accessing the exported file.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'access_code = "xxxxxx"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export";
params = Map();
params.put("access_code", "xxxxxx");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export');
url.searchParams.append('access_code', 'xxxxxx');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export")
params = {
"access_code" => "xxxxxx"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'access_code' => 'xxxxxx',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export"
params = {
"access_code": "xxxxxx"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_access_code = curl_easy_escape(curl, "xxxxxx", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export?access_code=%s", enc_access_code);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_access_code);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["access_code"] = "xxxxxx";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_access_code = curl_easy_escape(curl, "xxxxxx", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export";
url += "?access_code=" + std::string(enc_access_code);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_access_code);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-access_code (java.net.URLEncoder/encode "xxxxxx" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export" "?access_code=" enc-access_code)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export", nil)
q := req.URL.Query()
q.Add("access_code", "xxxxxx")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export?access_code=xxxxxx HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export");
uriBuilder.addParameter("access_code", "xxxxxx");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export';
const params = new URLSearchParams({
'access_code': 'xxxxxx'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
access_code = "xxxxxx"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("access_code", "xxxxxx")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedAccess_code = [@"xxxxxx" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export?access_code=%@", encodedAccess_code];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_access_code = Uri.pct_encode "xxxxxx" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export" ^ "?access_code=" ^ enc_access_code) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
access_code = "xxxxxx"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export"
params <- list(
access_code = "xxxxxx"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export")!
components.queryItems = [
URLQueryItem(name: "access_code", value: "xxxxxx")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the status of a portal data backup. Use this API to check whether the backup is in progress or completed. Once completed, the response includes the download URL. Use the export ID returned from the Schedule Data Backup API.
OAuth Scope:
ZohoProjects.portals.READ, ZohoFiles.files.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/[PORTAL_EXPORTID]/status")!
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
Retrieve the history of portal data backups. Use this API to view previously generated backups along with their status and download links.
OAuth Scope:
ZohoProjects.portals.READ, ZohoFiles.files.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/portal_export/history")!
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
This module covers all operations related to trash management. Use these APIs to retrieve, move, restore, and permanently delete records from the trash.
Retrieve records that have been moved to the recycle bin. Use this API to view deleted items that can be restored or permanently removed.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Specify the sorting order. Accepted values: ASC(field_name) or DESC(field_name),
String
Enter the filter criteria.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/bin?page=1&per_page=10&sort_by=asc%28trashed_time%29&filter=%7B%22criteria%22%3A%5B%7B%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22manufacturing%22%5D%2C%22cfid%22%3A%22275024000000071003%22%7D%2C%7B%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22275024000000232003%22%5D%2C%22cfid%22%3A%22275024000000071005%22%7D%2C%7B%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22275024000000058005%22%5D%2C%22cfid%22%3A%22275024000000071007%22%7D%2C%7B%22criteria_condition%22%3A%22last_week%22%2C%22value%22%3A%5B%22%24%7BLAST_WEEK%7D%22%5D%2C%22cfid%22%3A%22275024000000071011%22%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "asc(trashed_time)");
params.put("filter", {"criteria":[{"criteria_condition":"contains","value":["manufacturing"],"cfid":"275024000000071003"},{"criteria_condition":"is","value":["275024000000232003"],"cfid":"275024000000071005"},{"criteria_condition":"is","value":["275024000000058005"],"cfid":"275024000000071007"},{"criteria_condition":"last_week","value":["${LAST_WEEK}"],"cfid":"275024000000071011"}],"pattern":"1 AND 2 AND 3 AND 4"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/bin');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'asc(trashed_time)');
url.searchParams.append('filter', '{"criteria":[{"criteria_condition":"contains","value":["manufacturing"],"cfid":"275024000000071003"},{"criteria_condition":"is","value":["275024000000232003"],"cfid":"275024000000071005"},{"criteria_condition":"is","value":["275024000000058005"],"cfid":"275024000000071007"},{"criteria_condition":"last_week","value":["${LAST_WEEK}"],"cfid":"275024000000071011"}],"pattern":"1 AND 2 AND 3 AND 4"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/bin")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "asc(trashed_time)",
"filter" => "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'sort_by' => 'asc(trashed_time)',
'filter' => '{"criteria":[{"criteria_condition":"contains","value":["manufacturing"],"cfid":"275024000000071003"},{"criteria_condition":"is","value":["275024000000232003"],"cfid":"275024000000071005"},{"criteria_condition":"is","value":["275024000000058005"],"cfid":"275024000000071007"},{"criteria_condition":"last_week","value":["${LAST_WEEK}"],"cfid":"275024000000071011"}],"pattern":"1 AND 2 AND 3 AND 4"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin"
params = {
"page": "1",
"per_page": "10",
"sort_by": "asc(trashed_time)",
"filter": "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "asc(trashed_time)", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/bin?page=%s&per_page=%s&sort_by=%s&filter=%s", enc_page, enc_per_page, enc_sort_by, enc_filter);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_filter);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "asc(trashed_time)";
query["filter"] = "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/bin") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "asc(trashed_time)", 0);
char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&filter=" + std::string(enc_filter);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_filter);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "asc(trashed_time)" "UTF-8")
enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/bin" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&filter=" enc-filter)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/bin", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "asc(trashed_time)")
q.Add("filter", "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/bin?page=1&per_page=10&sort_by=asc%28trashed_time%29&filter=%7B%22criteria%22%3A%5B%7B%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22manufacturing%22%5D%2C%22cfid%22%3A%22275024000000071003%22%7D%2C%7B%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22275024000000232003%22%5D%2C%22cfid%22%3A%22275024000000071005%22%7D%2C%7B%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22275024000000058005%22%5D%2C%22cfid%22%3A%22275024000000071007%22%7D%2C%7B%22criteria_condition%22%3A%22last_week%22%2C%22value%22%3A%5B%22%24%7BLAST_WEEK%7D%22%5D%2C%22cfid%22%3A%22275024000000071011%22%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/bin");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "asc(trashed_time)");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/bin';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'asc(trashed_time)',
'filter': '{"criteria":[{"criteria_condition":"contains","value":["manufacturing"],"cfid":"275024000000071003"},{"criteria_condition":"is","value":["275024000000232003"],"cfid":"275024000000071005"},{"criteria_condition":"is","value":["275024000000058005"],"cfid":"275024000000071007"},{"criteria_condition":"last_week","value":["${LAST_WEEK}"],"cfid":"275024000000071011"}],"pattern":"1 AND 2 AND 3 AND 4"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
sort_by = "asc(trashed_time)"
filter = {"criteria":[{"criteria_condition":"contains","value":["manufacturing"],"cfid":"275024000000071003"},{"criteria_condition":"is","value":["275024000000232003"],"cfid":"275024000000071005"},{"criteria_condition":"is","value":["275024000000058005"],"cfid":"275024000000071007"},{"criteria_condition":"last_week","value":["${LAST_WEEK}"],"cfid":"275024000000071011"}],"pattern":"1 AND 2 AND 3 AND 4"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "asc(trashed_time)")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"asc(trashed_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/bin?page=%@&per_page=%@&sort_by=%@&filter=%@", encodedPage, encodedPer_page, encodedSort_by, encodedFilter];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_sort_by = Uri.pct_encode "asc(trashed_time)" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/bin" ^ "?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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
sort_by = "asc(trashed_time)"
filter = "{`"criteria`":[{`"criteria_condition`":`"contains`",`"value`":[`"manufacturing`"],`"cfid`":`"275024000000071003`"},{`"criteria_condition`":`"is`",`"value`":[`"275024000000232003`"],`"cfid`":`"275024000000071005`"},{`"criteria_condition`":`"is`",`"value`":[`"275024000000058005`"],`"cfid`":`"275024000000071007`"},{`"criteria_condition`":`"last_week`",`"value`":[`"${LAST_WEEK}`"],`"cfid`":`"275024000000071011`"}],`"pattern`":`"1 AND 2 AND 3 AND 4`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/bin"
params <- list(
page = "1",
per_page = "10",
sort_by = "asc(trashed_time)",
filter = "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/bin")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "asc(trashed_time)"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"],\"cfid\":\"275024000000071003\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000232003\"],\"cfid\":\"275024000000071005\"},{\"criteria_condition\":\"is\",\"value\":[\"275024000000058005\"],\"cfid\":\"275024000000071007\"},{\"criteria_condition\":\"last_week\",\"value\":[\"${LAST_WEEK}\"],\"cfid\":\"275024000000071011\"}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Move records to the recycle bin. Use this API to temporarily remove records while retaining the ability to restore them.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredEnter the record name. Accepted values: projects,phases,tasklists,tasks,issues
JSONArray
array size : 0-100Enter the list of record IDs
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/trash' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"tasks","items":["4000000000987","4000000012001"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/trash";
params = Map();
params.put("module", "tasks");
params.put("items", ["4000000000987","4000000012001"]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/trash');
const payload = JSON.stringify({"module":"tasks","items":["4000000000987","4000000012001"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/trash")
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 = '{"module":"tasks","items":["4000000000987","4000000012001"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/trash";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"module":"tasks","items":["4000000000987","4000000012001"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/trash"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"tasks","items":["4000000000987","4000000012001"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/trash");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/trash");
request.Content = new StringContent(
@"{""module"":""tasks"",""items"":[""4000000000987"",""4000000012001""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/trash");
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, "{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/trash"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/trash", 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://projectsapi.zoho.com/api/v3/portal/739121528/trash HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"tasks","items":["4000000000987","4000000012001"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/trash");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/trash';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"tasks","items":["4000000000987","4000000012001"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"tasks","items":["4000000000987","4000000012001"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/trash")
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("""{"module":"tasks","items":["4000000000987","4000000012001"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/trash"];
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 = [@"{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/trash" 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|{"module":"tasks","items":["4000000000987","4000000012001"]}|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 = @'
{"module":"tasks","items":["4000000000987","4000000012001"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/trash" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/trash"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/trash")!
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 = """
{"module":"tasks","items":["4000000000987","4000000012001"]}
""".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
Sample Response
Remove records from the recycle bin permanently. Use this API to remove records completely.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredEnter the record name. Accepted values: projects,phases,tasklists,tasks,issues
JSONArray
array size : 0-100Enter the list of record IDs
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/bin' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '[{"module":"tasks","items":["4000000000987","4000000012001"]}]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin";
params = List();
params.add({"module":"tasks","items":["4000000000987","4000000012001"]});
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/bin');
const payload = JSON.stringify([{"module":"tasks","items":["4000000000987","4000000012001"]}]);
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
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://projectsapi.zoho.com/api/v3/portal/739121528/bin")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '[{"module":"tasks","items":["4000000000987","4000000012001"]}]'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '[{"module":"tasks","items":["4000000000987","4000000012001"]}]',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '[{"module":"tasks","items":["4000000000987","4000000012001"]}]'
response = requests.delete(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://projectsapi.zoho.com/api/v3/portal/739121528/bin");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/bin");
request.Content = new StringContent(
@"[{""module"":""tasks"",""items"":[""4000000000987"",""4000000012001""]}]",
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://projectsapi.zoho.com/api/v3/portal/739121528/bin");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/bin"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/bin", 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))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/bin HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
[{"module":"tasks","items":["4000000000987","4000000012001"]}]
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://projectsapi.zoho.com/api/v3/portal/739121528/bin");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/bin';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify([{"module":"tasks","items":["4000000000987","4000000012001"]}])
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
[{"module":"tasks","items":["4000000000987","4000000012001"]}]import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/bin")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""[{"module":"tasks","items":["4000000000987","4000000012001"]}]""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/bin"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]" 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://projectsapi.zoho.com/api/v3/portal/739121528/bin" 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|[{"module":"tasks","items":["4000000000987","4000000012001"]}]|json} in
Lwt_main.run (
Client.delete ~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 = @'
[{"module":"tasks","items":["4000000000987","4000000012001"]}]
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/bin" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/bin"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/bin")!
var request = URLRequest(url: url)
request.httpMethod = "DELETE"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
[{"module":"tasks","items":["4000000000987","4000000012001"]}]
""".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
Sample Response
Restore records from the recycle bin. Use this API to recover deleted records within the retention period of 60 days.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredEnter the record name. Accepted values: projects,phases,tasklists,tasks,issues
JSONArray
array size : 0-100Enter the list of record IDs
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '[{"module":"tasks","items":["4000000000987","4000000012001"]}]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore";
params = List();
params.add({"module":"tasks","items":["4000000000987","4000000012001"]});
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore');
const payload = JSON.stringify([{"module":"tasks","items":["4000000000987","4000000012001"]}]);
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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '[{"module":"tasks","items":["4000000000987","4000000012001"]}]'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '[{"module":"tasks","items":["4000000000987","4000000012001"]}]',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '[{"module":"tasks","items":["4000000000987","4000000012001"]}]'
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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]");
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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore");
request.Content = new StringContent(
@"[{""module"":""tasks"",""items"":[""4000000000987"",""4000000012001""]}]",
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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]");
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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore", 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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
[{"module":"tasks","items":["4000000000987","4000000012001"]}]
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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]";
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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify([{"module":"tasks","items":["4000000000987","4000000012001"]}])
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
[{"module":"tasks","items":["4000000000987","4000000012001"]}]import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore")
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("""[{"module":"tasks","items":["4000000000987","4000000012001"]}]""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore"];
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 = [@"[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]" 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://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore" 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|[{"module":"tasks","items":["4000000000987","4000000012001"]}]|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 = @'
[{"module":"tasks","items":["4000000000987","4000000012001"]}]
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "[{\"module\":\"tasks\",\"items\":[\"4000000000987\",\"4000000012001\"]}]"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/bin/restore")!
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 = """
[{"module":"tasks","items":["4000000000987","4000000012001"]}]
""".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
Sample Response
Delete all records from the recycle bin permanently. Use this API to clear all trashed data. This action cannot be reversed.
OAuth Scope:
ZohoProjects.portals.CREATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/empty-bin")!
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
This module covers operations related to the configuration and customization of modules within Zoho Projects. Use this API to manage layouts, sections, fields, and options for various modules.
Retrieve the list of fields available in a module along with their metadata such as API name, display name, and field type. Use this API to understand the structure of a module before creating or updating records. Retrieve module_id using Get Modules API
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/fields")!
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
This module covers operations related to managing modules within Zoho Projects. Use this API to retrieve lists of modules and their configuration details.
Retrieve a list of modules available in the portal along with their configuration details. Use this API to identify module API names, IDs, and types before performing module-level operations.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
JSONObject
Enter filter criteria to refine results. Use this to combine multiple filter conditions.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules?%22filter%22=%7B%22is_customized%22%3Atrue%2C%22is_default%22%3Atrue%2C%22is_web_tab%22%3Atrue%7D&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules";
params = Map();
params.put("filter", {"is_customized":true,"is_default":true,"is_web_tab":true});
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules');
url.searchParams.append('"filter"', '{"is_customized":true,"is_default":true,"is_web_tab":true}');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules")
params = {
""filter"" => "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'"filter"' => '{"is_customized":true,"is_default":true,"is_web_tab":true}',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules"
params = {
""filter"": "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_"filter" = curl_easy_escape(curl, "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules?\"filter\"=%s&page=%s&per_page=%s", enc_"filter", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query[""filter""] = "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"filter" = curl_easy_escape(curl, "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules";
url += "?"filter"=" + std::string(enc_"filter");
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"filter" (java.net.URLEncoder/encode "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules" "?"filter"=" enc-"filter" "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules", nil)
q := req.URL.Query()
q.Add(""filter"", "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules?%22filter%22=%7B%22is_customized%22%3Atrue%2C%22is_default%22%3Atrue%2C%22is_web_tab%22%3Atrue%7D&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules");
uriBuilder.addParameter(""filter"", "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules';
const params = new URLSearchParams({
'"filter"': '{"is_customized":true,"is_default":true,"is_web_tab":true}',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
"filter" = {"is_customized":true,"is_default":true,"is_web_tab":true}
page = "1"
per_page = "10"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""filter"", "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encoded"filter" = [@"{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules?"filter"=%@&page=%@&per_page=%@", encoded"filter", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_"filter" = Uri.pct_encode "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules" ^ "?"filter"=" ^ enc_"filter" ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
"filter" = "{`"is_customized`":true,`"is_default`":true,`"is_web_tab`":true}"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules"
params <- list(
"filter" = "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules")!
components.queryItems = [
URLQueryItem(name: ""filter"", value: "{\"is_customized\":true,\"is_default\":true,\"is_web_tab\":true}"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the details of a specific module using its API name. Retrieve module_api_name using Get Modules API. Use this API to view module configuration such as type, visibility, and layout settings.
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")!
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
Create a new custom module in the Zoho Projects portal. Use this API to define a module with its name, icon, and visibility across projects.
OAuth Scope:
ZohoProjects.custom_fields.CREATE
Parameter
String
max length : 50Enter the singular display name of the custom module.
String
max length : 50Enter the plural display name of the custom module.
String
max length : 50Enter the icon class of the custom module.
boolean
Specify whether the custom module is global or project-specific. Accepted values :true or false
boolean
Specify whether this project module to be shown in the all projects or not
boolean
Specify whether this project module to be shown in the overview or not
JSONArray
max length : 10000array size : 0-100
Enter the project association details.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules";
params = Map();
params.put("singular_name", "Risk");
params.put("plural_name", "Risks");
params.put("icon_class", "zoho-risk");
params.put("is_global_module", "false");
params.put("is_all_projects", "false");
params.put("is_overview_needed", "true");
params.put("projects", [{"project":{"id":"4000000062001"},"is_selected":"true"}]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules');
const payload = JSON.stringify({"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]});
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules")
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 = '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_global_module\":\"false\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"projects\":[{\"project\":{\"id\":\"4000000062001\"},\"is_selected\":\"true\"}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules");
request.Content = new StringContent(
@"{""singular_name"":""Risk"",""plural_name"":""Risks"",""icon_class"":""zoho-risk"",""is_global_module"":""false"",""is_all_projects"":""false"",""is_overview_needed"":""true"",""projects"":[{""project"":{""id"":""4000000062001""},""is_selected"":""true""}]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules");
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, "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_global_module\":\"false\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"projects\":[{\"project\":{\"id\":\"4000000062001\"},\"is_selected\":\"true\"}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_global_module\":\"false\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"projects\":[{\"project\":{\"id\":\"4000000062001\"},\"is_selected\":\"true\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_global_module\":\"false\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"projects\":[{\"project\":{\"id\":\"4000000062001\"},\"is_selected\":\"true\"}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules", 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_global_module\":\"false\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"projects\":[{\"project\":{\"id\":\"4000000062001\"},\"is_selected\":\"true\"}]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules")
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("""{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules"];
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 = [@"{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_global_module\":\"false\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"projects\":[{\"project\":{\"id\":\"4000000062001\"},\"is_selected\":\"true\"}]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules" 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|{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}|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 = @'
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_global_module\":\"false\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"projects\":[{\"project\":{\"id\":\"4000000062001\"},\"is_selected\":\"true\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules")!
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 = """
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_global_module":"false","is_all_projects":"false","is_overview_needed":"true","projects":[{"project":{"id":"4000000062001"},"is_selected":"true"}]}
""".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
Sample Response
Modify the configuration of an existing module. Use this API to modify module name, visibility, or layout settings.
OAuth Scope:
ZohoProjects.custom_fields.UPDATE
Parameter
String
max length : 50Enter the singular display name of the custom module.
String
max length : 50Enter the plural display name of the custom module.
String
max length : 50Enter the icon class of the custom module.
boolean
Specify whether this project module to be shown in the all projects. Accepted values :true or false
boolean
Specify whether this project module to be shown in the overview. Accepted values :true or false
JSONObject
max length : 1000Enter the custom module property which is to be allowed to be update.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]";
params = Map();
params.put("singular_name", "Risk");
params.put("plural_name", "Risks");
params.put("icon_class", "zoho-risk");
params.put("is_all_projects", "false");
params.put("is_overview_needed", "true");
params.put("module_property", {"default_layout_type":"public|private"});
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]');
const payload = JSON.stringify({"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}});
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")
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 = '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}'
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"module_property\":{\"default_layout_type\":\"public|private\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
request.Content = new StringContent(
@"{""singular_name"":""Risk"",""plural_name"":""Risks"",""icon_class"":""zoho-risk"",""is_all_projects"":""false"",""is_overview_needed"":""true"",""module_property"":{""default_layout_type"":""public|private""}}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
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, "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"module_property\":{\"default_layout_type\":\"public|private\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"module_property\":{\"default_layout_type\":\"public|private\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"module_property\":{\"default_layout_type\":\"public|private\"}}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]", 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"module_property\":{\"default_layout_type\":\"public|private\"}}";
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")
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("""{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"];
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 = [@"{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"module_property\":{\"default_layout_type\":\"public|private\"}}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]" 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|{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}|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 = @'
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"singular_name\":\"Risk\",\"plural_name\":\"Risks\",\"icon_class\":\"zoho-risk\",\"is_all_projects\":\"false\",\"is_overview_needed\":\"true\",\"module_property\":{\"default_layout_type\":\"public|private\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")!
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 = """
{"singular_name":"Risk","plural_name":"Risks","icon_class":"zoho-risk","is_all_projects":"false","is_overview_needed":"true","module_property":{"default_layout_type":"public|private"}}
""".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
Sample Response
Activate or deactivate a module.
OAuth Scope:
ZohoProjects.custom_fields.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)";
response = invokeUrl
[
url: url
type: PATCH
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.patch(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)");
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);
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
PATCH https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate) HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "PATCH"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PATCH"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.patch ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)" -Method PATCH -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]/(activate|deactivate)")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
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
Move a module to the recycle bin.
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/[MODULEID]")!
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
Remove a module from the recycle bin permanently.
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]")!
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
Restore a module from the recycle bin.
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover";
response = invokeUrl
[
url: url
type: POST
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/modules/bin/[BINID]/recover")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Response
Retrieve field configuration details for a module, including supported field types and field limits.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration?module=Risk' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration";
params = Map();
params.put("module", "Risk");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration');
url.searchParams.append('module', 'Risk');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration")
params = {
"module" => "Risk"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration"
params = {
"module": "Risk"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration?module=%s", enc_module);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration";
url += "?module=" + std::string(enc_module);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration" "?module=" enc-module)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration", nil)
q := req.URL.Query()
q.Add("module", "Risk")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration?module=Risk HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration");
uriBuilder.addParameter("module", "Risk");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration';
const params = new URLSearchParams({
'module': 'Risk'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration?module=%@", encodedModule];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration" ^ "?module=" ^ enc_module) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration"
params <- list(
module = "Risk"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields-configuration")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the list of global statuses configured for a module along with their metadata such as status ID, name, color, type, and sequence order. Use this API to identify status IDs before performing status-based operations.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
JSONObject
Enter filter criteria to refine results. Use only one filter attribute per request.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses?module=Risk&%22filter%22=%7B%22status_ids%22%3A%22-%22%2C%22status_names%22%3A%22-%22%2C%22search_term%22%3A%22Zoho+Projects%22%7D&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses";
params = Map();
params.put("module", "Risk");
params.put("filter", {"status_ids":"-","status_names":"-","search_term":"Zoho Projects"});
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses');
url.searchParams.append('module', 'Risk');
url.searchParams.append('"filter"', '{"status_ids":"-","status_names":"-","search_term":"Zoho Projects"}');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses")
params = {
"module" => "Risk",
""filter"" => "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
'"filter"' => '{"status_ids":"-","status_names":"-","search_term":"Zoho Projects"}',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses"
params = {
"module": "Risk",
""filter"": "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses?module=%s&\"filter\"=%s&page=%s&per_page=%s", enc_module, enc_"filter", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
query[""filter""] = "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses";
url += "?module=" + std::string(enc_module);
url += "&"filter"=" + std::string(enc_"filter");
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses" "?module=" enc-module "&"filter"=" enc-"filter" "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses", nil)
q := req.URL.Query()
q.Add("module", "Risk")
q.Add(""filter"", "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses?module=Risk&%22filter%22=%7B%22status_ids%22%3A%22-%22%2C%22status_names%22%3A%22-%22%2C%22search_term%22%3A%22Zoho+Projects%22%7D&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses");
uriBuilder.addParameter("module", "Risk");
uriBuilder.addParameter(""filter"", "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses';
const params = new URLSearchParams({
'module': 'Risk',
'"filter"': '{"status_ids":"-","status_names":"-","search_term":"Zoho Projects"}',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"
"filter" = {"status_ids":"-","status_names":"-","search_term":"Zoho Projects"}
page = "1"
per_page = "10"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
urlBuilder.addQueryParameter(""filter"", "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses?module=%@&"filter"=%@&page=%@&per_page=%@", encodedModule, encoded"filter", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let enc_"filter" = Uri.pct_encode "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses" ^ "?module=" ^ enc_module ^ "&"filter"=" ^ enc_"filter" ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
"filter" = "{`"status_ids`":`"-`",`"status_names`":`"-`",`"search_term`":`"Zoho Projects`"}"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses"
params <- list(
module = "Risk",
"filter" = "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/global-statuses")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk"),
URLQueryItem(name: ""filter"", value: "{\"status_ids\":\"-\",\"status_names\":\"-\",\"search_term\":\"Zoho Projects\"}"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
INVALID_PARAMETER_VALUE HTTP 400
This module covers operations related to the management of module layouts in Zoho Projects. Use this API to retrieve layout lists, update layouts, and associate or disassociate fields from layouts.
Retrieve the list of layouts available in a module. Use this API to identify layout IDs before performing layout-level operations such as updating layouts, adding fields, or managing sections.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
JSONObject
Enter filter criteria to refine results. Use this to combine multiple filter conditions.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts?module=Risk&page=1&per_page=10&%22filter%22=%7B%22is_association_info_needed%22%3A%22true%22%2C%22is_current_user_profile_associated%22%3A%22true%22%2C%22search_term%22%3A%22Zoho+Projects%22%2C%22search_by%22%3A%22project%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts";
params = Map();
params.put("module", "Risk");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"is_association_info_needed":"true","is_current_user_profile_associated":"true","search_term":"Zoho Projects","search_by":"project"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts');
url.searchParams.append('module', 'Risk');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"is_association_info_needed":"true","is_current_user_profile_associated":"true","search_term":"Zoho Projects","search_by":"project"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts")
params = {
"module" => "Risk",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"is_association_info_needed":"true","is_current_user_profile_associated":"true","search_term":"Zoho Projects","search_by":"project"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts"
params = {
"module": "Risk",
"page": "1",
"per_page": "10",
""filter"": "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts?module=%s&page=%s&per_page=%s&\"filter\"=%s", enc_module, enc_page, enc_per_page, enc_"filter");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts";
url += "?module=" + std::string(enc_module);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts" "?module=" enc-module "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter")]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts", nil)
q := req.URL.Query()
q.Add("module", "Risk")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts?module=Risk&page=1&per_page=10&%22filter%22=%7B%22is_association_info_needed%22%3A%22true%22%2C%22is_current_user_profile_associated%22%3A%22true%22%2C%22search_term%22%3A%22Zoho+Projects%22%2C%22search_by%22%3A%22project%22%7D HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts");
uriBuilder.addParameter("module", "Risk");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts';
const params = new URLSearchParams({
'module': 'Risk',
'page': '1',
'per_page': '10',
'"filter"': '{"is_association_info_needed":"true","is_current_user_profile_associated":"true","search_term":"Zoho Projects","search_by":"project"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"
page = "1"
per_page = "10"
"filter" = {"is_association_info_needed":"true","is_current_user_profile_associated":"true","search_term":"Zoho Projects","search_by":"project"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts?module=%@&page=%@&per_page=%@&"filter"=%@", encodedModule, encodedPage, encodedPer_page, encoded"filter"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts" ^ "?module=" ^ enc_module ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
page = "1"
per_page = "10"
"filter" = "{`"is_association_info_needed`":`"true`",`"is_current_user_profile_associated`":`"true`",`"search_term`":`"Zoho Projects`",`"search_by`":`"project`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts"
params <- list(
module = "Risk",
page = "1",
per_page = "10",
"filter" = "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"is_association_info_needed\":\"true\",\"is_current_user_profile_associated\":\"true\",\"search_term\":\"Zoho Projects\",\"search_by\":\"project\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
INVALID_PARAMETER_VALUE HTTP 400
Retrieve the default layout configured for a module. Use this API to identify the layout applied when new records are created.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout?module=Risk' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout";
params = Map();
params.put("module", "Risk");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout');
url.searchParams.append('module', 'Risk');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout")
params = {
"module" => "Risk"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout"
params = {
"module": "Risk"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout?module=%s", enc_module);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout";
url += "?module=" + std::string(enc_module);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout" "?module=" enc-module)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout", nil)
q := req.URL.Query()
q.Add("module", "Risk")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout?module=Risk HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout");
uriBuilder.addParameter("module", "Risk");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout';
const params = new URLSearchParams({
'module': 'Risk'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout?module=%@", encodedModule];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout" ^ "?module=" ^ enc_module) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout"
params <- list(
module = "Risk"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/default-layout")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the complete details of a layout including sections and associated fields. Use this API to understand layout structure before modifying it.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=Risk' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]";
params = Map();
params.put("module", "Risk");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]');
url.searchParams.append('module', 'Risk');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]")
params = {
"module" => "Risk"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"
params = {
"module": "Risk"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=%s", enc_module);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]";
url += "?module=" + std::string(enc_module);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" "?module=" enc-module)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]", nil)
q := req.URL.Query()
q.Add("module", "Risk")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=Risk HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]");
uriBuilder.addParameter("module", "Risk");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]';
const params = new URLSearchParams({
'module': 'Risk'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=%@", encodedModule];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" ^ "?module=" ^ enc_module) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"
params <- list(
module = "Risk"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
INVALID_PARAMETER_VALUE HTTP 400
Create a new layout in a module. Use this API to define a new layout or clone an existing layout structure.
OAuth Scope:
ZohoProjects.custom_fields.CREATE
Parameter
String
requiredmax length : 100
Enter the module API name or ID.
String
requiredmax length : 200
Enter the layout name.
String
Enter the layout type.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts";
params = Map();
params.put("module", "Risk");
params.put("name", "Simple Entity");
params.put("type", "public|private");
params.put("reference", {"id":"4000000062001"});
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts');
const payload = JSON.stringify({"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}});
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts")
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 = '{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}'
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"name\":\"Simple Entity\",\"type\":\"public|private\",\"reference\":{\"id\":\"4000000062001\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts");
request.Content = new StringContent(
@"{""module"":""Risk"",""name"":""Simple Entity"",""type"":""public|private"",""reference"":{""id"":""4000000062001""}}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts");
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, "{\"module\":\"Risk\",\"name\":\"Simple Entity\",\"type\":\"public|private\",\"reference\":{\"id\":\"4000000062001\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"Risk\",\"name\":\"Simple Entity\",\"type\":\"public|private\",\"reference\":{\"id\":\"4000000062001\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"Risk\",\"name\":\"Simple Entity\",\"type\":\"public|private\",\"reference\":{\"id\":\"4000000062001\"}}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts", 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"Risk\",\"name\":\"Simple Entity\",\"type\":\"public|private\",\"reference\":{\"id\":\"4000000062001\"}}";
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts")
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("""{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts"];
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 = [@"{\"module\":\"Risk\",\"name\":\"Simple Entity\",\"type\":\"public|private\",\"reference\":{\"id\":\"4000000062001\"}}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts" 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|{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}|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 = @'
{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"Risk\",\"name\":\"Simple Entity\",\"type\":\"public|private\",\"reference\":{\"id\":\"4000000062001\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts")!
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 = """
{"module":"Risk","name":"Simple Entity","type":"public|private","reference":{"id":"4000000062001"}}
""".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
Sample Response
Modify the details of an existing layout. Use this API to modify layout properties such as name or structure.
OAuth Scope:
ZohoProjects.custom_fields.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]";
response = invokeUrl
[
url: url
type: PATCH
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.patch(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]");
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);
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
PATCH https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "PATCH"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PATCH"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.patch ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" -Method PATCH -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
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
Remove a layout from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.custom_fields.DELETE
Parameter
String
requiredEnter the module API name or ID.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=Risk' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]";
params = Map();
params.put("module", "Risk");
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]');
url.searchParams.append('module', 'Risk');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]")
params = {
"module" => "Risk"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"
params = {
"module": "Risk"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=%s", enc_module);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Delete, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]";
url += "?module=" + std::string(enc_module);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" "?module=" enc-module)]
(def response
(client/delete url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]", nil)
q := req.URL.Query()
q.Add("module", "Risk")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=Risk HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]");
uriBuilder.addParameter("module", "Risk");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]';
const params = new URLSearchParams({
'module': 'Risk'
});
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]?module=%@", encodedModule];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" ^ "?module=" ^ enc_module) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]"
params <- list(
module = "Risk"
)
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk")
]
let url = components.url!
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 Input
Sample Response
Remove a field from a specific layout.
OAuth Scope:
ZohoProjects.custom_fields.DELETE
Parameter
String
requiredEnter the module API name or ID.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]?module=Risk' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]";
params = Map();
params.put("module", "Risk");
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]');
url.searchParams.append('module', 'Risk');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]")
params = {
"module" => "Risk"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]"
params = {
"module": "Risk"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]?module=%s", enc_module);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Delete, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]";
url += "?module=" + std::string(enc_module);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]" "?module=" enc-module)]
(def response
(client/delete url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]", nil)
q := req.URL.Query()
q.Add("module", "Risk")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]?module=Risk HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]");
uriBuilder.addParameter("module", "Risk");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]';
const params = new URLSearchParams({
'module': 'Risk'
});
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]?module=%@", encodedModule];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]" ^ "?module=" ^ enc_module) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]"
params <- list(
module = "Risk"
)
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/fields/[FIELDID]")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk")
]
let url = components.url!
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 Input
Sample Response
Retrieve the list of records associated with a layout.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
JSONObject
Enter filter criteria to refine results. Use this to combine multiple filter conditions.
String
requiredSpecify whether to retrieve records not associated with the layout. Accepted values :true or false
String
requiredEnter the search term.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities?module=Risk&%22filter%22=%7B%22ignore%22%3A%5B%7B%22id%22%3A%224000000062001%22%7D%5D%7D&is_unassociated=true&search_term=Zoho+Projects' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities";
params = Map();
params.put("module", "Risk");
params.put("filter", {"ignore":[{"id":"4000000062001"}]});
params.put("is_unassociated", "true");
params.put("search_term", "Zoho Projects");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities');
url.searchParams.append('module', 'Risk');
url.searchParams.append('"filter"', '{"ignore":[{"id":"4000000062001"}]}');
url.searchParams.append('is_unassociated', 'true');
url.searchParams.append('search_term', 'Zoho Projects');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities")
params = {
"module" => "Risk",
""filter"" => "{\"ignore\":[{\"id\":\"4000000062001\"}]}",
"is_unassociated" => "true",
"search_term" => "Zoho Projects"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
'"filter"' => '{"ignore":[{"id":"4000000062001"}]}',
'is_unassociated' => 'true',
'search_term' => 'Zoho Projects',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities"
params = {
"module": "Risk",
""filter"": "{\"ignore\":[{\"id\":\"4000000062001\"}]}",
"is_unassociated": "true",
"search_term": "Zoho Projects"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"ignore\":[{\"id\":\"4000000062001\"}]}", 0);
char *enc_is_unassociated = curl_easy_escape(curl, "true", 0);
char *enc_search_term = curl_easy_escape(curl, "Zoho Projects", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities?module=%s&\"filter\"=%s&is_unassociated=%s&search_term=%s", enc_module, enc_"filter", enc_is_unassociated, enc_search_term);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_is_unassociated);
curl_free(enc_search_term);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
query[""filter""] = "{\"ignore\":[{\"id\":\"4000000062001\"}]}";
query["is_unassociated"] = "true";
query["search_term"] = "Zoho Projects";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"ignore\":[{\"id\":\"4000000062001\"}]}", 0);
char* enc_is_unassociated = curl_easy_escape(curl, "true", 0);
char* enc_search_term = curl_easy_escape(curl, "Zoho Projects", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities";
url += "?module=" + std::string(enc_module);
url += "&"filter"=" + std::string(enc_"filter");
url += "&is_unassociated=" + std::string(enc_is_unassociated);
url += "&search_term=" + std::string(enc_search_term);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_is_unassociated);
curl_free(enc_search_term);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"ignore\":[{\"id\":\"4000000062001\"}]}" "UTF-8")
enc-is_unassociated (java.net.URLEncoder/encode "true" "UTF-8")
enc-search_term (java.net.URLEncoder/encode "Zoho Projects" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities" "?module=" enc-module "&"filter"=" enc-"filter" "&is_unassociated=" enc-is_unassociated "&search_term=" enc-search_term)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities", nil)
q := req.URL.Query()
q.Add("module", "Risk")
q.Add(""filter"", "{\"ignore\":[{\"id\":\"4000000062001\"}]}")
q.Add("is_unassociated", "true")
q.Add("search_term", "Zoho Projects")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities?module=Risk&%22filter%22=%7B%22ignore%22%3A%5B%7B%22id%22%3A%224000000062001%22%7D%5D%7D&is_unassociated=true&search_term=Zoho+Projects HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities");
uriBuilder.addParameter("module", "Risk");
uriBuilder.addParameter(""filter"", "{\"ignore\":[{\"id\":\"4000000062001\"}]}");
uriBuilder.addParameter("is_unassociated", "true");
uriBuilder.addParameter("search_term", "Zoho Projects");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities';
const params = new URLSearchParams({
'module': 'Risk',
'"filter"': '{"ignore":[{"id":"4000000062001"}]}',
'is_unassociated': 'true',
'search_term': 'Zoho Projects'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"
"filter" = {"ignore":[{"id":"4000000062001"}]}
is_unassociated = "true"
search_term = "Zoho Projects"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
urlBuilder.addQueryParameter(""filter"", "{\"ignore\":[{\"id\":\"4000000062001\"}]}")
urlBuilder.addQueryParameter("is_unassociated", "true")
urlBuilder.addQueryParameter("search_term", "Zoho Projects")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"ignore\":[{\"id\":\"4000000062001\"}]}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIs_unassociated = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_term = [@"Zoho Projects" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities?module=%@&"filter"=%@&is_unassociated=%@&search_term=%@", encodedModule, encoded"filter", encodedIs_unassociated, encodedSearch_term];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let enc_"filter" = Uri.pct_encode "{\"ignore\":[{\"id\":\"4000000062001\"}]}" in
let enc_is_unassociated = Uri.pct_encode "true" in
let enc_search_term = Uri.pct_encode "Zoho Projects" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities" ^ "?module=" ^ enc_module ^ "&"filter"=" ^ enc_"filter" ^ "&is_unassociated=" ^ enc_is_unassociated ^ "&search_term=" ^ enc_search_term) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
"filter" = "{`"ignore`":[{`"id`":`"4000000062001`"}]}"
is_unassociated = "true"
search_term = "Zoho Projects"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities"
params <- list(
module = "Risk",
"filter" = "{\"ignore\":[{\"id\":\"4000000062001\"}]}",
is_unassociated = "true",
search_term = "Zoho Projects"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/associated-entities")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk"),
URLQueryItem(name: ""filter"", value: "{\"ignore\":[{\"id\":\"4000000062001\"}]}"),
URLQueryItem(name: "is_unassociated", value: "true"),
URLQueryItem(name: "search_term", value: "Zoho Projects")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This module covers operations related to the creation and management of sections within module layouts. Use this API to create, update, or delete sections.
Create a new section or update an existing section in a layout.
OAuth Scope:
ZohoProjects.custom_fields.CREATE
Parameter
String
requiredmax length : 100
Enter the module API name or ID.
JSONObject
max length : 1000Specify the position of the section in the layout.
long
Enter the section ID.
String
requiredmax length : 100
Enter the section name.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PUT \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections";
params = Map();
params.put("module", "Risk");
params.put("position", {"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"});
params.put("id", "4000000062001");
params.put("name", "Simple Entity");
response = invokeUrl
[
url: url
type: PUT
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections');
const payload = JSON.stringify({"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PUT',
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}'
response = requests.put(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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"name\":\"Simple Entity\"}");
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.Put, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections");
request.Content = new StringContent(
@"{""module"":""Risk"",""position"":{""before_id"":""4009123452362"",""after_id"":""4009123452345"",""exact_position"":""0"",""known_position"":""first|last""},""id"":""4000000062001"",""name"":""Simple Entity""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"name\":\"Simple Entity\"}");
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/put "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"Risk\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"name\":\"Simple Entity\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"Risk\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"name\":\"Simple Entity\"}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections", 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))
}
PUT https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"Risk\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"name\":\"Simple Entity\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "PUT"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PUT"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"module\":\"Risk\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"name\":\"Simple Entity\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections" 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|{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}|json} in
Lwt_main.run (
Client.put ~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 = @'
{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"Risk\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"name\":\"Simple Entity\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections")!
var request = URLRequest(url: url)
request.httpMethod = "PUT"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"module":"Risk","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","name":"Simple Entity"}
""".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
Sample Response
Remove a section from a layout. Use Get Layout Details API to retrieve the section_id.
OAuth Scope:
ZohoProjects.custom_fields.DELETE
Parameter
String
requiredEnter the module API name or ID.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]?module=Risk' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]";
params = Map();
params.put("module", "Risk");
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]');
url.searchParams.append('module', 'Risk');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]")
params = {
"module" => "Risk"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]"
params = {
"module": "Risk"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]?module=%s", enc_module);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Delete, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]";
url += "?module=" + std::string(enc_module);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]" "?module=" enc-module)]
(def response
(client/delete url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]", nil)
q := req.URL.Query()
q.Add("module", "Risk")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]?module=Risk HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]");
uriBuilder.addParameter("module", "Risk");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]';
const params = new URLSearchParams({
'module': 'Risk'
});
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]?module=%@", encodedModule];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]" ^ "?module=" ^ enc_module) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]"
params <- list(
module = "Risk"
)
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/layouts/[LAYOUTID]/sections/[SECTIONID]")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk")
]
let url = components.url!
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 Input
Sample Response
This module covers operations related to the management of fields within Zoho Projects modules. Use this API to retrieve field details, create or update fields, delete fields, and associate fields with layouts.
Retrieve the list of fields available in a module along with their metadata such as API name, display name, and field type. Use this API to understand the structure of a module before creating or updating records. Retrieve module_id using Get Modules API
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
JSONObject
Enter filter criteria to refine results. Use this to combine multiple filter conditions.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields?module=Risk&%22filter%22=%7B%22is_mandatory%22%3A%22true%22%2C%22is_renamed%22%3A%22true%22%2C%22is_default%22%3Atrue%2C%22is_unassociated%22%3A%22true%22%2C%22is_association_info_needed%22%3A%22true%22%2C%22is_formula_based_list%22%3A%22true%22%2C%22layout_id%22%3A%224000003211234%22%2C%22project_id%22%3A%224009238123434%22%2C%22field_ids%22%3A%5B%224009238123888%22%5D%2C%22fields%22%3A%5B%22name%22%5D%2C%22search_term%22%3A%22Zoho+Projects%22%7D&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields";
params = Map();
params.put("module", "Risk");
params.put("filter", {"is_mandatory":"true","is_renamed":"true","is_default":true,"is_unassociated":"true","is_association_info_needed":"true","is_formula_based_list":"true","layout_id":"4000003211234","project_id":"4009238123434","field_ids":["4009238123888"],"fields":["name"],"search_term":"Zoho Projects"});
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields');
url.searchParams.append('module', 'Risk');
url.searchParams.append('"filter"', '{"is_mandatory":"true","is_renamed":"true","is_default":true,"is_unassociated":"true","is_association_info_needed":"true","is_formula_based_list":"true","layout_id":"4000003211234","project_id":"4009238123434","field_ids":["4009238123888"],"fields":["name"],"search_term":"Zoho Projects"}');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields")
params = {
"module" => "Risk",
""filter"" => "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
'"filter"' => '{"is_mandatory":"true","is_renamed":"true","is_default":true,"is_unassociated":"true","is_association_info_needed":"true","is_formula_based_list":"true","layout_id":"4000003211234","project_id":"4009238123434","field_ids":["4009238123888"],"fields":["name"],"search_term":"Zoho Projects"}',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields"
params = {
"module": "Risk",
""filter"": "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields?module=%s&\"filter\"=%s&page=%s&per_page=%s", enc_module, enc_"filter", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
query[""filter""] = "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields";
url += "?module=" + std::string(enc_module);
url += "&"filter"=" + std::string(enc_"filter");
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields" "?module=" enc-module "&"filter"=" enc-"filter" "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields", nil)
q := req.URL.Query()
q.Add("module", "Risk")
q.Add(""filter"", "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields?module=Risk&%22filter%22=%7B%22is_mandatory%22%3A%22true%22%2C%22is_renamed%22%3A%22true%22%2C%22is_default%22%3Atrue%2C%22is_unassociated%22%3A%22true%22%2C%22is_association_info_needed%22%3A%22true%22%2C%22is_formula_based_list%22%3A%22true%22%2C%22layout_id%22%3A%224000003211234%22%2C%22project_id%22%3A%224009238123434%22%2C%22field_ids%22%3A%5B%224009238123888%22%5D%2C%22fields%22%3A%5B%22name%22%5D%2C%22search_term%22%3A%22Zoho+Projects%22%7D&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields");
uriBuilder.addParameter("module", "Risk");
uriBuilder.addParameter(""filter"", "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields';
const params = new URLSearchParams({
'module': 'Risk',
'"filter"': '{"is_mandatory":"true","is_renamed":"true","is_default":true,"is_unassociated":"true","is_association_info_needed":"true","is_formula_based_list":"true","layout_id":"4000003211234","project_id":"4009238123434","field_ids":["4009238123888"],"fields":["name"],"search_term":"Zoho Projects"}',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"
"filter" = {"is_mandatory":"true","is_renamed":"true","is_default":true,"is_unassociated":"true","is_association_info_needed":"true","is_formula_based_list":"true","layout_id":"4000003211234","project_id":"4009238123434","field_ids":["4009238123888"],"fields":["name"],"search_term":"Zoho Projects"}
page = "1"
per_page = "10"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
urlBuilder.addQueryParameter(""filter"", "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields?module=%@&"filter"=%@&page=%@&per_page=%@", encodedModule, encoded"filter", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let enc_"filter" = Uri.pct_encode "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields" ^ "?module=" ^ enc_module ^ "&"filter"=" ^ enc_"filter" ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
"filter" = "{`"is_mandatory`":`"true`",`"is_renamed`":`"true`",`"is_default`":true,`"is_unassociated`":`"true`",`"is_association_info_needed`":`"true`",`"is_formula_based_list`":`"true`",`"layout_id`":`"4000003211234`",`"project_id`":`"4009238123434`",`"field_ids`":[`"4009238123888`"],`"fields`":[`"name`"],`"search_term`":`"Zoho Projects`"}"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields"
params <- list(
module = "Risk",
"filter" = "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk"),
URLQueryItem(name: ""filter"", value: "{\"is_mandatory\":\"true\",\"is_renamed\":\"true\",\"is_default\":true,\"is_unassociated\":\"true\",\"is_association_info_needed\":\"true\",\"is_formula_based_list\":\"true\",\"layout_id\":\"4000003211234\",\"project_id\":\"4009238123434\",\"field_ids\":[\"4009238123888\"],\"fields\":[\"name\"],\"search_term\":\"Zoho Projects\"}"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Create a new field or update an existing field in a module layout. Use this API to define custom fields, configure their properties, and place them within layout sections.
OAuth Scope:
ZohoProjects.custom_fields.CREATE
Parameter
String
requiredmax length : 100
Enter the module API name or ID.
long
Enter the layout ID.
long
Enter the section ID.
JSONObject
max length : 1000Specify the position of the section in the layout.
long
Enter field ID to update. Omit to create a new field.
String
max length : 250Enter the field label shown in UI.
String
max length : 100Enter the field type (e.g., singleline, picklist, date).
String
max length : 100Enter backend data type (e.g., CHAR, DATE, DOUBLE).
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PUT \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields";
params = Map();
params.put("module", "Risk");
params.put("layout_id", "4000003211234");
params.put("section_id", "4009234211234");
params.put("position", {"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"});
params.put("id", "4000000062001");
params.put("display_name", "start_date");
params.put("field_type", "start_date");
params.put("data_type", "-");
params.put("field_property", {"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}});
response = invokeUrl
[
url: url
type: PUT
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields');
const payload = JSON.stringify({"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PUT',
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}'
response = requests.put(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://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"layout_id\":\"4000003211234\",\"section_id\":\"4009234211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"display_name\":\"start_date\",\"field_type\":\"start_date\",\"data_type\":\"-\",\"field_property\":{\"description\":\"-\",\"is_pii\":\"-\",\"is_encrypted\":\"-\",\"context_property\":{\"default_value\":\"-\",\"is_mandatory\":\"true\",\"has_info\":\"-\",\"permission\":\"-\",\"is_added_to_resolution\":\"-\",\"is_added_to_public_form\":\"-\"},\"field_type_properties\":{\"currencylist_type\":\"project_currency|field_currency\",\"currency_value\":\"-\",\"precision_value\":\"-\",\"userlist_type\":\"all_users|selected_users|selected_roles\"}}}");
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.Put, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields");
request.Content = new StringContent(
@"{""module"":""Risk"",""layout_id"":""4000003211234"",""section_id"":""4009234211234"",""position"":{""before_id"":""4009123452362"",""after_id"":""4009123452345"",""exact_position"":""0"",""known_position"":""first|last""},""id"":""4000000062001"",""display_name"":""start_date"",""field_type"":""start_date"",""data_type"":""-"",""field_property"":{""description"":""-"",""is_pii"":""-"",""is_encrypted"":""-"",""context_property"":{""default_value"":""-"",""is_mandatory"":""true"",""has_info"":""-"",""permission"":""-"",""is_added_to_resolution"":""-"",""is_added_to_public_form"":""-""},""field_type_properties"":{""currencylist_type"":""project_currency|field_currency"",""currency_value"":""-"",""precision_value"":""-"",""userlist_type"":""all_users|selected_users|selected_roles""}}}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"layout_id\":\"4000003211234\",\"section_id\":\"4009234211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"display_name\":\"start_date\",\"field_type\":\"start_date\",\"data_type\":\"-\",\"field_property\":{\"description\":\"-\",\"is_pii\":\"-\",\"is_encrypted\":\"-\",\"context_property\":{\"default_value\":\"-\",\"is_mandatory\":\"true\",\"has_info\":\"-\",\"permission\":\"-\",\"is_added_to_resolution\":\"-\",\"is_added_to_public_form\":\"-\"},\"field_type_properties\":{\"currencylist_type\":\"project_currency|field_currency\",\"currency_value\":\"-\",\"precision_value\":\"-\",\"userlist_type\":\"all_users|selected_users|selected_roles\"}}}");
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/put "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"Risk\",\"layout_id\":\"4000003211234\",\"section_id\":\"4009234211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"display_name\":\"start_date\",\"field_type\":\"start_date\",\"data_type\":\"-\",\"field_property\":{\"description\":\"-\",\"is_pii\":\"-\",\"is_encrypted\":\"-\",\"context_property\":{\"default_value\":\"-\",\"is_mandatory\":\"true\",\"has_info\":\"-\",\"permission\":\"-\",\"is_added_to_resolution\":\"-\",\"is_added_to_public_form\":\"-\"},\"field_type_properties\":{\"currencylist_type\":\"project_currency|field_currency\",\"currency_value\":\"-\",\"precision_value\":\"-\",\"userlist_type\":\"all_users|selected_users|selected_roles\"}}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"Risk\",\"layout_id\":\"4000003211234\",\"section_id\":\"4009234211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"display_name\":\"start_date\",\"field_type\":\"start_date\",\"data_type\":\"-\",\"field_property\":{\"description\":\"-\",\"is_pii\":\"-\",\"is_encrypted\":\"-\",\"context_property\":{\"default_value\":\"-\",\"is_mandatory\":\"true\",\"has_info\":\"-\",\"permission\":\"-\",\"is_added_to_resolution\":\"-\",\"is_added_to_public_form\":\"-\"},\"field_type_properties\":{\"currencylist_type\":\"project_currency|field_currency\",\"currency_value\":\"-\",\"precision_value\":\"-\",\"userlist_type\":\"all_users|selected_users|selected_roles\"}}}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields", 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))
}
PUT https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"Risk\",\"layout_id\":\"4000003211234\",\"section_id\":\"4009234211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"display_name\":\"start_date\",\"field_type\":\"start_date\",\"data_type\":\"-\",\"field_property\":{\"description\":\"-\",\"is_pii\":\"-\",\"is_encrypted\":\"-\",\"context_property\":{\"default_value\":\"-\",\"is_mandatory\":\"true\",\"has_info\":\"-\",\"permission\":\"-\",\"is_added_to_resolution\":\"-\",\"is_added_to_public_form\":\"-\"},\"field_type_properties\":{\"currencylist_type\":\"project_currency|field_currency\",\"currency_value\":\"-\",\"precision_value\":\"-\",\"userlist_type\":\"all_users|selected_users|selected_roles\"}}}";
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "PUT"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PUT"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"module\":\"Risk\",\"layout_id\":\"4000003211234\",\"section_id\":\"4009234211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"display_name\":\"start_date\",\"field_type\":\"start_date\",\"data_type\":\"-\",\"field_property\":{\"description\":\"-\",\"is_pii\":\"-\",\"is_encrypted\":\"-\",\"context_property\":{\"default_value\":\"-\",\"is_mandatory\":\"true\",\"has_info\":\"-\",\"permission\":\"-\",\"is_added_to_resolution\":\"-\",\"is_added_to_public_form\":\"-\"},\"field_type_properties\":{\"currencylist_type\":\"project_currency|field_currency\",\"currency_value\":\"-\",\"precision_value\":\"-\",\"userlist_type\":\"all_users|selected_users|selected_roles\"}}}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields" 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|{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}|json} in
Lwt_main.run (
Client.put ~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 = @'
{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"Risk\",\"layout_id\":\"4000003211234\",\"section_id\":\"4009234211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"id\":\"4000000062001\",\"display_name\":\"start_date\",\"field_type\":\"start_date\",\"data_type\":\"-\",\"field_property\":{\"description\":\"-\",\"is_pii\":\"-\",\"is_encrypted\":\"-\",\"context_property\":{\"default_value\":\"-\",\"is_mandatory\":\"true\",\"has_info\":\"-\",\"permission\":\"-\",\"is_added_to_resolution\":\"-\",\"is_added_to_public_form\":\"-\"},\"field_type_properties\":{\"currencylist_type\":\"project_currency|field_currency\",\"currency_value\":\"-\",\"precision_value\":\"-\",\"userlist_type\":\"all_users|selected_users|selected_roles\"}}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields")!
var request = URLRequest(url: url)
request.httpMethod = "PUT"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"module":"Risk","layout_id":"4000003211234","section_id":"4009234211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"id":"4000000062001","display_name":"start_date","field_type":"start_date","data_type":"-","field_property":{"description":"-","is_pii":"-","is_encrypted":"-","context_property":{"default_value":"-","is_mandatory":"true","has_info":"-","permission":"-","is_added_to_resolution":"-","is_added_to_public_form":"-"},"field_type_properties":{"currencylist_type":"project_currency|field_currency","currency_value":"-","precision_value":"-","userlist_type":"all_users|selected_users|selected_roles"}}}
""".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
Sample Response
Remove a field from the module.
OAuth Scope:
ZohoProjects.custom_fields.DELETE
Parameter
String
requiredEnter the module API name or ID.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]?module=Risk' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]";
params = Map();
params.put("module", "Risk");
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]');
url.searchParams.append('module', 'Risk');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]")
params = {
"module" => "Risk"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]"
params = {
"module": "Risk"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]?module=%s", enc_module);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Delete, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]";
url += "?module=" + std::string(enc_module);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]" "?module=" enc-module)]
(def response
(client/delete url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]", nil)
q := req.URL.Query()
q.Add("module", "Risk")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]?module=Risk HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]");
uriBuilder.addParameter("module", "Risk");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]';
const params = new URLSearchParams({
'module': 'Risk'
});
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]?module=%@", encodedModule];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]" ^ "?module=" ^ enc_module) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]"
params <- list(
module = "Risk"
)
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk")
]
let url = components.url!
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 Input
Sample Response
Retrieve layouts where a field is used.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
JSONObject
Enter filter criteria to refine results. Use this to combine multiple filter conditions.
int
Specify the page of associated layouts.
int
Specify the range of associated layouts.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts?module=Risk&%22filter%22=%7B%22ignore%22%3A%5B%7B%22id%22%3A%224000000062001%22%7D%5D%2C%22search_term%22%3A%22Zoho+Projects%22%7D&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts";
params = Map();
params.put("module", "Risk");
params.put("filter", {"ignore":[{"id":"4000000062001"}],"search_term":"Zoho Projects"});
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts');
url.searchParams.append('module', 'Risk');
url.searchParams.append('"filter"', '{"ignore":[{"id":"4000000062001"}],"search_term":"Zoho Projects"}');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts")
params = {
"module" => "Risk",
""filter"" => "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
'"filter"' => '{"ignore":[{"id":"4000000062001"}],"search_term":"Zoho Projects"}',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts"
params = {
"module": "Risk",
""filter"": "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts?module=%s&\"filter\"=%s&page=%s&per_page=%s", enc_module, enc_"filter", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
query[""filter""] = "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts";
url += "?module=" + std::string(enc_module);
url += "&"filter"=" + std::string(enc_"filter");
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts" "?module=" enc-module "&"filter"=" enc-"filter" "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts", nil)
q := req.URL.Query()
q.Add("module", "Risk")
q.Add(""filter"", "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts?module=Risk&%22filter%22=%7B%22ignore%22%3A%5B%7B%22id%22%3A%224000000062001%22%7D%5D%2C%22search_term%22%3A%22Zoho+Projects%22%7D&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts");
uriBuilder.addParameter("module", "Risk");
uriBuilder.addParameter(""filter"", "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts';
const params = new URLSearchParams({
'module': 'Risk',
'"filter"': '{"ignore":[{"id":"4000000062001"}],"search_term":"Zoho Projects"}',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"
"filter" = {"ignore":[{"id":"4000000062001"}],"search_term":"Zoho Projects"}
page = "1"
per_page = "10"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
urlBuilder.addQueryParameter(""filter"", "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts?module=%@&"filter"=%@&page=%@&per_page=%@", encodedModule, encoded"filter", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let enc_"filter" = Uri.pct_encode "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts" ^ "?module=" ^ enc_module ^ "&"filter"=" ^ enc_"filter" ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
"filter" = "{`"ignore`":[{`"id`":`"4000000062001`"}],`"search_term`":`"Zoho Projects`"}"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts"
params <- list(
module = "Risk",
"filter" = "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/fields/[FIELDID]/associated-layouts")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk"),
URLQueryItem(name: ""filter"", value: "{\"ignore\":[{\"id\":\"4000000062001\"}],\"search_term\":\"Zoho Projects\"}"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This module covers operations related to the fields within Zoho Projects modules. Use this API to retrieve, create, update, or delete options for fields, as well as disassociate or apply bulk options for fields.
Retrieve available options for a field. Use this API for picklist values, statuses, or selectable options.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
String
requiredEnter the field name or ID.
JSONObject
Enter filter criteria to refine results. Use this to combine multiple filter conditions.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options?module=Risk&field=4000003212456&%22filter%22=%7B%22project_id%22%3A%224009238123434%22%2C%22layout_id%22%3A%224000003211234%22%2C%22is_unassociated%22%3A%22true%22%7D&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
params = Map();
params.put("module", "Risk");
params.put("field", "4000003212456");
params.put("filter", {"project_id":"4009238123434","layout_id":"4000003211234","is_unassociated":"true"});
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options');
url.searchParams.append('module', 'Risk');
url.searchParams.append('field', '4000003212456');
url.searchParams.append('"filter"', '{"project_id":"4009238123434","layout_id":"4000003211234","is_unassociated":"true"}');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")
params = {
"module" => "Risk",
"field" => "4000003212456",
""filter"" => "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'Risk',
'field' => '4000003212456',
'"filter"' => '{"project_id":"4009238123434","layout_id":"4000003211234","is_unassociated":"true"}',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
params = {
"module": "Risk",
"field": "4000003212456",
""filter"": "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "Risk", 0);
char *enc_field = curl_easy_escape(curl, "4000003212456", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options?module=%s&field=%s&\"filter\"=%s&page=%s&per_page=%s", enc_module, enc_field, enc_"filter", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_free(enc_field);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "Risk";
query["field"] = "4000003212456";
query[""filter""] = "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_module = curl_easy_escape(curl, "Risk", 0);
char* enc_field = curl_easy_escape(curl, "4000003212456", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
url += "?module=" + std::string(enc_module);
url += "&field=" + std::string(enc_field);
url += "&"filter"=" + std::string(enc_"filter");
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_free(enc_field);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "Risk" "UTF-8")
enc-field (java.net.URLEncoder/encode "4000003212456" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" "?module=" enc-module "&field=" enc-field "&"filter"=" enc-"filter" "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options", nil)
q := req.URL.Query()
q.Add("module", "Risk")
q.Add("field", "4000003212456")
q.Add(""filter"", "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options?module=Risk&field=4000003212456&%22filter%22=%7B%22project_id%22%3A%224009238123434%22%2C%22layout_id%22%3A%224000003211234%22%2C%22is_unassociated%22%3A%22true%22%7D&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
uriBuilder.addParameter("module", "Risk");
uriBuilder.addParameter("field", "4000003212456");
uriBuilder.addParameter(""filter"", "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options';
const params = new URLSearchParams({
'module': 'Risk',
'field': '4000003212456',
'"filter"': '{"project_id":"4009238123434","layout_id":"4000003211234","is_unassociated":"true"}',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "Risk"
field = "4000003212456"
"filter" = {"project_id":"4009238123434","layout_id":"4000003211234","is_unassociated":"true"}
page = "1"
per_page = "10"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "Risk")
urlBuilder.addQueryParameter("field", "4000003212456")
urlBuilder.addQueryParameter(""filter"", "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"Risk" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedField = [@"4000003212456" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options?module=%@&field=%@&"filter"=%@&page=%@&per_page=%@", encodedModule, encodedField, encoded"filter", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "Risk" in
let enc_field = Uri.pct_encode "4000003212456" in
let enc_"filter" = Uri.pct_encode "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" ^ "?module=" ^ enc_module ^ "&field=" ^ enc_field ^ "&"filter"=" ^ enc_"filter" ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "Risk"
field = "4000003212456"
"filter" = "{`"project_id`":`"4009238123434`",`"layout_id`":`"4000003211234`",`"is_unassociated`":`"true`"}"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
params <- list(
module = "Risk",
field = "4000003212456",
"filter" = "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")!
components.queryItems = [
URLQueryItem(name: "module", value: "Risk"),
URLQueryItem(name: "field", value: "4000003212456"),
URLQueryItem(name: ""filter"", value: "{\"project_id\":\"4009238123434\",\"layout_id\":\"4000003211234\",\"is_unassociated\":\"true\"}"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Create multiple options for a field.
OAuth Scope:
ZohoProjects.custom_fields.CREATE
Parameter
String
requiredmax length : 100
Enter the module API name or ID.
String
requiredEnter the field ID.
long
Enter the layout ID.
JSONObject
max length : 1000Specify the position of the option in the layout.
JSONArray
max length : 1000Specify the custom options with the ID and value.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
params = Map();
params.put("module", "Risk");
params.put("field", "4000003212456");
params.put("layout_id", "4000003211234");
params.put("position", {"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"});
params.put("roles", [{"id":"4000000062001"}]);
params.put("users", [{"zpuid":"4000000002055"}]);
params.put("statuses", [{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}]);
params.put("custom_options", [{"id":"4000000062001","value":["1752587000000097269"]}]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options');
const payload = JSON.stringify({"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]});
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")
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 = '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
request.Content = new StringContent(
@"{""module"":""Risk"",""field"":""4000003212456"",""layout_id"":""4000003211234"",""position"":{""before_id"":""4009123452362"",""after_id"":""4009123452345"",""exact_position"":""0"",""known_position"":""first|last""},""roles"":[{""id"":""4000000062001""}],""users"":[{""zpuid"":""4000000002055""}],""statuses"":[{""id"":""4000000062001"",""name"":""Simple Entity"",""color"":""#FFFFFF"",""is_closed_type"":""true"",""transitions"":[{""id"":""4000000062001""}]}],""custom_options"":[{""id"":""4000000062001"",""value"":[""1752587000000097269""]}]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
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, "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options", 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")
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("""{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"];
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 = [@"{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" 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|{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}|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 = @'
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")!
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 = """
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}
""".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
Sample Response
Remove or disassociate multiple options from a field.
OAuth Scope:
ZohoProjects.custom_fields.DELETE
Parameter
String
requiredmax length : 100
Enter the module API name or ID where the field exists. Retrieve using Get Modules API.
String
requiredEnter the field ID from which options should be removed. Retrieve using Get Fields API.
long
Enter the layout ID to remove layout-specific associations. If not provided, the option is removed globally.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
params = Map();
params.put("module", "Risk");
params.put("field", "4000003212456");
params.put("layout_id", "4000003211234");
params.put("roles", [{"id":"4000000062001"}]);
params.put("users", [{"zpuid":"4000000002055"}]);
params.put("statuses", [{"id":"4000000062001"}]);
params.put("custom_options", [{"id":"4000000062001"}]);
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options');
const payload = JSON.stringify({"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}'
response = requests.delete(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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\"}],\"custom_options\":[{\"id\":\"4000000062001\"}]}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
request.Content = new StringContent(
@"{""module"":""Risk"",""field"":""4000003212456"",""layout_id"":""4000003211234"",""roles"":[{""id"":""4000000062001""}],""users"":[{""zpuid"":""4000000002055""}],""statuses"":[{""id"":""4000000062001""}],""custom_options"":[{""id"":""4000000062001""}]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\"}],\"custom_options\":[{\"id\":\"4000000062001\"}]}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\"}],\"custom_options\":[{\"id\":\"4000000062001\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\"}],\"custom_options\":[{\"id\":\"4000000062001\"}]}")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options", 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))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\"}],\"custom_options\":[{\"id\":\"4000000062001\"}]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" 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|{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}|json} in
Lwt_main.run (
Client.delete ~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 = @'
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\"}],\"custom_options\":[{\"id\":\"4000000062001\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")!
var request = URLRequest(url: url)
request.httpMethod = "DELETE"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001"}],"custom_options":[{"id":"4000000062001"}]}
""".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
Sample Response
Update existing options for a field. Use this API to rename or reorder options.
OAuth Scope:
ZohoProjects.custom_fields.UPDATE
Parameter
String
requiredmax length : 100
Enter the module API name or ID.
String
requiredEnter the field ID for which options need to be created.
long
Enter the layout ID to update layout-specific option configuration.
JSONObject
max length : 1000Specify the position of the option in the layout.
JSONArray
max length : 1000Specify the custom options with the ID and value.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
params = Map();
params.put("module", "Risk");
params.put("field", "4000003212456");
params.put("layout_id", "4000003211234");
params.put("position", {"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"});
params.put("roles", [{"id":"4000000062001"}]);
params.put("users", [{"zpuid":"4000000002055"}]);
params.put("statuses", [{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}]);
params.put("custom_options", [{"id":"4000000062001","value":["1752587000000097269"]}]);
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options');
const payload = JSON.stringify({"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]});
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")
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 = '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
request.Content = new StringContent(
@"{""module"":""Risk"",""field"":""4000003212456"",""layout_id"":""4000003211234"",""position"":{""before_id"":""4009123452362"",""after_id"":""4009123452345"",""exact_position"":""0"",""known_position"":""first|last""},""roles"":[{""id"":""4000000062001""}],""users"":[{""zpuid"":""4000000002055""}],""statuses"":[{""id"":""4000000062001"",""name"":""Simple Entity"",""color"":""#FFFFFF"",""is_closed_type"":""true"",""transitions"":[{""id"":""4000000062001""}]}],""custom_options"":[{""id"":""4000000062001"",""value"":[""1752587000000097269""]}]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
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, "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options", 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")
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("""{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"];
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 = [@"{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" 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|{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}|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 = @'
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"Risk\",\"field\":\"4000003212456\",\"layout_id\":\"4000003211234\",\"position\":{\"before_id\":\"4009123452362\",\"after_id\":\"4009123452345\",\"exact_position\":\"0\",\"known_position\":\"first|last\"},\"roles\":[{\"id\":\"4000000062001\"}],\"users\":[{\"zpuid\":\"4000000002055\"}],\"statuses\":[{\"id\":\"4000000062001\",\"name\":\"Simple Entity\",\"color\":\"#FFFFFF\",\"is_closed_type\":\"true\",\"transitions\":[{\"id\":\"4000000062001\"}]}],\"custom_options\":[{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/options")!
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 = """
{"module":"Risk","field":"4000003212456","layout_id":"4000003211234","position":{"before_id":"4009123452362","after_id":"4009123452345","exact_position":"0","known_position":"first|last"},"roles":[{"id":"4000000062001"}],"users":[{"zpuid":"4000000002055"}],"statuses":[{"id":"4000000062001","name":"Simple Entity","color":"#FFFFFF","is_closed_type":"true","transitions":[{"id":"4000000062001"}]}],"custom_options":[{"id":"4000000062001","value":["1752587000000097269"]}]}
""".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
Sample Response
This module covers operations related to integration fields within Zoho Projects. Use this API to retrieve, create, update, or delete integration fields, and manage their associations with modules.
Retrieve external services available for integration fields.
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service")!
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
Retrieve modules available within an external service.
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/modules")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Response
Retrieve fields from an external service module. Use this API to map external fields to Zoho Projects fields.
OAuth Scope:
ZohoProjects.custom_fields.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/integration-field/service/[SERVICEID]/module/[MODULEID]/fields")!
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
This module covers user-related operations within Zoho Projects. Use this API to manage portal users, client users, and resources. You can retrieve user details, add or deactivate users, update user profiles, and view the projects a user is associated with.
Retrieve all users, client users, and contacts from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
String
Enter the user type. Accepted values are portal_user,client_user,client_contact
String
Enter the view type.Accepted values are active,inactive,active_read_only,inactive_read_only,subordinates_active,direct_reports_active,activate_user_request,sandboxdevelopers
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the sort criteria. Accepted values: ASC(field_name) or DESC(field_name).
Available fields :
first_namelast_nameportal_profilerolerate_per_hourcost_per_hourbusiness_hoursadded_timeupdated_timelast_accessed_onapi_name of custom fields
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3.1/portal/739121528/users?type=portal_user&view_type=active&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28first_name%29' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users";
params = Map();
params.put("type", "portal_user");
params.put("view_type", "active");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"});
params.put("sort_by", "ASC(first_name)");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3.1/portal/739121528/users');
url.searchParams.append('type', 'portal_user');
url.searchParams.append('view_type', 'active');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}');
url.searchParams.append('sort_by', 'ASC(first_name)');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users")
params = {
"type" => "portal_user",
"view_type" => "active",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}",
"sort_by" => "ASC(first_name)"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'type' => 'portal_user',
'view_type' => 'active',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}',
'sort_by' => 'ASC(first_name)',
];
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users"
params = {
"type": "portal_user",
"view_type": "active",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}",
"sort_by": "ASC(first_name)"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_type = curl_easy_escape(curl, "portal_user", 0);
char *enc_view_type = curl_easy_escape(curl, "active", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(first_name)", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users?type=%s&view_type=%s&page=%s&per_page=%s&\"filter\"=%s&sort_by=%s", enc_type, enc_view_type, enc_page, enc_per_page, enc_"filter", enc_sort_by);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["type"] = "portal_user";
query["view_type"] = "active";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}";
query["sort_by"] = "ASC(first_name)";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_type = curl_easy_escape(curl, "portal_user", 0);
char* enc_view_type = curl_easy_escape(curl, "active", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(first_name)", 0);
std::string url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users";
url += "?type=" + std::string(enc_type);
url += "&view_type=" + std::string(enc_view_type);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
url += "&sort_by=" + std::string(enc_sort_by);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "portal_user" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "active" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(first_name)" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" "?type=" enc-type "&view_type=" enc-view_type "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&sort_by=" enc-sort_by)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users", nil)
q := req.URL.Query()
q.Add("type", "portal_user")
q.Add("view_type", "active")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}")
q.Add("sort_by", "ASC(first_name)")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3.1/portal/739121528/users?type=portal_user&view_type=active&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28first_name%29 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users");
uriBuilder.addParameter("type", "portal_user");
uriBuilder.addParameter("view_type", "active");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("sort_by", "ASC(first_name)");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3.1/portal/739121528/users';
const params = new URLSearchParams({
'type': 'portal_user',
'view_type': 'active',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}',
'sort_by': 'ASC(first_name)'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
type = "portal_user"
view_type = "active"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}
sort_by = "ASC(first_name)"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "portal_user")
urlBuilder.addQueryParameter("view_type", "active")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(first_name)")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedType = [@"portal_user" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"active" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(first_name)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3.1/portal/739121528/users?type=%@&view_type=%@&page=%@&per_page=%@&"filter"=%@&sort_by=%@", encodedType, encodedView_type, encodedPage, encodedPer_page, encoded"filter", encodedSort_by];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_type = Uri.pct_encode "portal_user" in
let enc_view_type = Uri.pct_encode "active" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" in
let enc_sort_by = Uri.pct_encode "ASC(first_name)" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" ^ "?type=" ^ enc_type ^ "&view_type=" ^ enc_view_type ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&sort_by=" ^ enc_sort_by) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
type = "portal_user"
view_type = "active"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"field_name`":`"portal_profile`",`"criteria_condition`":`"is`",`"value`":[`"1752587000000097269`"]}],`"pattern`":`"1`"}"
sort_by = "ASC(first_name)"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users"
params <- list(
type = "portal_user",
view_type = "active",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}",
sort_by = "ASC(first_name)"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users")!
components.queryItems = [
URLQueryItem(name: "type", value: "portal_user"),
URLQueryItem(name: "view_type", value: "active"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}"),
URLQueryItem(name: "sort_by", value: "ASC(first_name)")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This API is deprecated. Use Get All Portal Users, Client Users, and Contacts instead.
Retrieve all users, client users, contacts, and resources in a specific portal. Use this API to access the complete list of users and their details within a portal.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
int
Enter the user type to filter the results. Accepted values: 1 (Users), 2 (Client Users), 3 (Client Contacts), 6 (Resources)
String
Enter the view type to filter users by status. Accepted values: 0 (Inactive), 1 (Active)
String
Enter the sort criteria for the results. Example: alphabetical:asc. Accepted values: alphabetical, last_accessed_time, role, profile, added_time with asc or desc
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the IDs of the users to retrieve.
String
Enter the IDs of the client companies to filter the users.
String
Enter the data view type. Accepted values: list, grid
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users?type=portal_user&view_type=active&sort=alphabetical%3Aasc&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22-%22%2C%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%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&ids=23806000006417155&company_ids=170876000003941041&view=list' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users";
params = Map();
params.put("type", "portal_user");
params.put("view_type", "active");
params.put("sort", "alphabetical:asc");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"});
params.put("ids", "23806000006417155");
params.put("company_ids", "170876000003941041");
params.put("view", "list");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users');
url.searchParams.append('type', 'portal_user');
url.searchParams.append('view_type', 'active');
url.searchParams.append('sort', 'alphabetical:asc');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}');
url.searchParams.append('ids', '23806000006417155');
url.searchParams.append('company_ids', '170876000003941041');
url.searchParams.append('view', 'list');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users")
params = {
"type" => "portal_user",
"view_type" => "active",
"sort" => "alphabetical:asc",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}",
"ids" => "23806000006417155",
"company_ids" => "170876000003941041",
"view" => "list"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'type' => 'portal_user',
'view_type' => 'active',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
'ids' => '23806000006417155',
'company_ids' => '170876000003941041',
'view' => 'list',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users"
params = {
"type": "portal_user",
"view_type": "active",
"sort": "alphabetical:asc",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}",
"ids": "23806000006417155",
"company_ids": "170876000003941041",
"view": "list"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_type = curl_easy_escape(curl, "portal_user", 0);
char *enc_view_type = curl_easy_escape(curl, "active", 0);
char *enc_sort = curl_easy_escape(curl, "alphabetical:asc", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char *enc_ids = curl_easy_escape(curl, "23806000006417155", 0);
char *enc_company_ids = curl_easy_escape(curl, "170876000003941041", 0);
char *enc_view = curl_easy_escape(curl, "list", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users?type=%s&view_type=%s&sort=%s&page=%s&per_page=%s&\"filter\"=%s&ids=%s&company_ids=%s&view=%s", enc_type, enc_view_type, enc_sort, enc_page, enc_per_page, enc_"filter", enc_ids, enc_company_ids, enc_view);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_sort);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_ids);
curl_free(enc_company_ids);
curl_free(enc_view);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["type"] = "portal_user";
query["view_type"] = "active";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
query["ids"] = "23806000006417155";
query["company_ids"] = "170876000003941041";
query["view"] = "list";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_type = curl_easy_escape(curl, "portal_user", 0);
char* enc_view_type = curl_easy_escape(curl, "active", 0);
char* enc_sort = curl_easy_escape(curl, "alphabetical:asc", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char* enc_ids = curl_easy_escape(curl, "23806000006417155", 0);
char* enc_company_ids = curl_easy_escape(curl, "170876000003941041", 0);
char* enc_view = curl_easy_escape(curl, "list", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users";
url += "?type=" + std::string(enc_type);
url += "&view_type=" + std::string(enc_view_type);
url += "&sort=" + std::string(enc_sort);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
url += "&ids=" + std::string(enc_ids);
url += "&company_ids=" + std::string(enc_company_ids);
url += "&view=" + std::string(enc_view);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_sort);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_ids);
curl_free(enc_company_ids);
curl_free(enc_view);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "portal_user" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "active" "UTF-8")
enc-sort (java.net.URLEncoder/encode "alphabetical:asc" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" "UTF-8")
enc-ids (java.net.URLEncoder/encode "23806000006417155" "UTF-8")
enc-company_ids (java.net.URLEncoder/encode "170876000003941041" "UTF-8")
enc-view (java.net.URLEncoder/encode "list" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users" "?type=" enc-type "&view_type=" enc-view_type "&sort=" enc-sort "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&ids=" enc-ids "&company_ids=" enc-company_ids "&view=" enc-view)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users", nil)
q := req.URL.Query()
q.Add("type", "portal_user")
q.Add("view_type", "active")
q.Add("sort", "alphabetical:asc")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
q.Add("ids", "23806000006417155")
q.Add("company_ids", "170876000003941041")
q.Add("view", "list")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users?type=portal_user&view_type=active&sort=alphabetical%3Aasc&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22-%22%2C%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%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&ids=23806000006417155&company_ids=170876000003941041&view=list HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users");
uriBuilder.addParameter("type", "portal_user");
uriBuilder.addParameter("view_type", "active");
uriBuilder.addParameter("sort", "alphabetical:asc");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("ids", "23806000006417155");
uriBuilder.addParameter("company_ids", "170876000003941041");
uriBuilder.addParameter("view", "list");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users';
const params = new URLSearchParams({
'type': 'portal_user',
'view_type': 'active',
'sort': 'alphabetical:asc',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
'ids': '23806000006417155',
'company_ids': '170876000003941041',
'view': 'list'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
type = "portal_user"
view_type = "active"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}
ids = "23806000006417155"
company_ids = "170876000003941041"
view = "list"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "portal_user")
urlBuilder.addQueryParameter("view_type", "active")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
urlBuilder.addQueryParameter("ids", "23806000006417155")
urlBuilder.addQueryParameter("company_ids", "170876000003941041")
urlBuilder.addQueryParameter("view", "list")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedType = [@"portal_user" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"active" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort = [@"alphabetical:asc" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIds = [@"23806000006417155" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedCompany_ids = [@"170876000003941041" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView = [@"list" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users?type=%@&view_type=%@&sort=%@&page=%@&per_page=%@&"filter"=%@&ids=%@&company_ids=%@&view=%@", encodedType, encodedView_type, encodedSort, encodedPage, encodedPer_page, encoded"filter", encodedIds, encodedCompany_ids, encodedView];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_type = Uri.pct_encode "portal_user" in
let enc_view_type = Uri.pct_encode "active" in
let enc_sort = Uri.pct_encode "alphabetical:asc" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let enc_ids = Uri.pct_encode "23806000006417155" in
let enc_company_ids = Uri.pct_encode "170876000003941041" in
let enc_view = Uri.pct_encode "list" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users" ^ "?type=" ^ enc_type ^ "&view_type=" ^ enc_view_type ^ "&sort=" ^ enc_sort ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&ids=" ^ enc_ids ^ "&company_ids=" ^ enc_company_ids ^ "&view=" ^ enc_view) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
type = "portal_user"
view_type = "active"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"portal_profile`",`"criteria_condition`":`"is`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1`"}"
ids = "23806000006417155"
company_ids = "170876000003941041"
view = "list"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users"
params <- list(
type = "portal_user",
view_type = "active",
sort = "alphabetical:asc",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}",
ids = "23806000006417155",
company_ids = "170876000003941041",
view = "list"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users")!
components.queryItems = [
URLQueryItem(name: "type", value: "portal_user"),
URLQueryItem(name: "view_type", value: "active"),
URLQueryItem(name: "sort", value: "alphabetical:asc"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"),
URLQueryItem(name: "ids", value: "23806000006417155"),
URLQueryItem(name: "company_ids", value: "170876000003941041"),
URLQueryItem(name: "view", value: "list")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
UNKNOWN_PARAMETER HTTP 400
INVALID_PARAMETER_VALUE HTTP 400
USER_HIERARCHY_PLAN_RESTRICTION HTTP 403
Retrieve details of a user from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]")!
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
This API is deprecated. Use Get User Details instead.
Retrieve the details of a specific user in a portal. Use this API to access the full profile and information of a user within a portal.
OAuth Scope:
ZohoProjects.users.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]")!
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
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
INVALID_PARAMETER_VALUE HTTP 400
Retrieve the details of the teams associated with a user.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams")
params = {
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams"
params = {
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams?page=%s&per_page=%s", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams" "?page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams?page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams';
const params = new URLSearchParams({
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams?page=%@&per_page=%@", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams"
params <- list(
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/teams")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve all projects associated with a specific user in a portal. Use this API to access the list of projects a user is part of within a portal.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
String
Enter the status of the projects to retrieve. Accepted values: active, archived
String
Enter a search term to filter the projects.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects?status=active&search_term=Monica&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects";
params = Map();
params.put("status", "active");
params.put("search_term", "Monica");
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects');
url.searchParams.append('status', 'active');
url.searchParams.append('search_term', 'Monica');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects")
params = {
"status" => "active",
"search_term" => "Monica",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'status' => 'active',
'search_term' => 'Monica',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects"
params = {
"status": "active",
"search_term": "Monica",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_status = curl_easy_escape(curl, "active", 0);
char *enc_search_term = curl_easy_escape(curl, "Monica", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects?status=%s&search_term=%s&page=%s&per_page=%s", enc_status, enc_search_term, enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_status);
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["status"] = "active";
query["search_term"] = "Monica";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_status = curl_easy_escape(curl, "active", 0);
char* enc_search_term = curl_easy_escape(curl, "Monica", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects";
url += "?status=" + std::string(enc_status);
url += "&search_term=" + std::string(enc_search_term);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_status);
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-status (java.net.URLEncoder/encode "active" "UTF-8")
enc-search_term (java.net.URLEncoder/encode "Monica" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects" "?status=" enc-status "&search_term=" enc-search_term "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects", nil)
q := req.URL.Query()
q.Add("status", "active")
q.Add("search_term", "Monica")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects?status=active&search_term=Monica&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects");
uriBuilder.addParameter("status", "active");
uriBuilder.addParameter("search_term", "Monica");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects';
const params = new URLSearchParams({
'status': 'active',
'search_term': 'Monica',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
status = "active"
search_term = "Monica"
page = "1"
per_page = "10"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("status", "active")
urlBuilder.addQueryParameter("search_term", "Monica")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedStatus = [@"active" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_term = [@"Monica" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects?status=%@&search_term=%@&page=%@&per_page=%@", encodedStatus, encodedSearch_term, encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_status = Uri.pct_encode "active" in
let enc_search_term = Uri.pct_encode "Monica" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects" ^ "?status=" ^ enc_status ^ "&search_term=" ^ enc_search_term ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
status = "active"
search_term = "Monica"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects"
params <- list(
status = "active",
search_term = "Monica",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[USERID]/projects")!
components.queryItems = [
URLQueryItem(name: "status", value: "active"),
URLQueryItem(name: "search_term", value: "Monica"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
Retrieve the license details of portal and client users in a specific portal. Use this API to access the current license usage and availability for users within a portal.
OAuth Scope:
ZohoProjects.users.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/license-details")!
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
Possible Errors
UNAUTHORIZED_ACCESS HTTP 401
Add a new user to the Zoho Projects portal. Use this API to invite and grant access to a user within a portal.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"userdetails" = [{"email_id":"mark@zylker.com","email_template":"-","role_id":"8000000000991","profile_id":"2223806000000022149","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","include_projects":"8000000005863","applyportalrate":"-","reporting_to":"8000000002411","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users";
params = Map();
params.put("userdetails", [{"email_id":"mark@zylker.com","email_template":"-","role_id":"8000000000991","profile_id":"2223806000000022149","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","include_projects":"8000000005863","applyportalrate":"-","reporting_to":"8000000002411","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users');
url.searchParams.append('"userdetails"', '[{"email_id":"mark@zylker.com","email_template":"-","role_id":"8000000000991","profile_id":"2223806000000022149","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","include_projects":"8000000005863","applyportalrate":"-","reporting_to":"8000000002411","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users")
params = {
""userdetails"" => "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'"userdetails"' => '[{"email_id":"mark@zylker.com","email_template":"-","role_id":"8000000000991","profile_id":"2223806000000022149","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","include_projects":"8000000005863","applyportalrate":"-","reporting_to":"8000000002411","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users"
params = {
""userdetails"": "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users?\"userdetails\"=%s", enc_"userdetails");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_"userdetails");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query[""userdetails""] = "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users";
url += "?"userdetails"=" + std::string(enc_"userdetails");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_"userdetails");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"userdetails" (java.net.URLEncoder/encode "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users" "?"userdetails"=" enc-"userdetails")]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/users", nil)
q := req.URL.Query()
q.Add(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/users?%22userdetails%22=%5B%7B%22email_id%22%3A%22mark%40zylker.com%22%2C%22email_template%22%3A%22-%22%2C%22role_id%22%3A%228000000000991%22%2C%22profile_id%22%3A%222223806000000022149%22%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%2C%22bulk_projects%22%3A%7B%22select_all%22%3A%22false%22%2C%22selected%22%3A%7B%22group_ids%22%3A%5B%222380600000612345%22%5D%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%7D%2C%22unselected%22%3A%7B%22group_ids%22%3A%5B%222380600000612345%22%5D%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%7D%2C%22rateupdatedprojects%22%3A%7B%22longkey%22%3A%221752587000000097269%22%7D%2C%22costrateupdatedprojects%22%3A%7B%22longkey%22%3A%221752587000000097269%22%7D%7D%2C%22rate%22%3A%2255.00%22%2C%22cost_rate_per_hour%22%3A%22200%22%2C%22revenue_budget%22%3A%2214.00%22%2C%22cost_budget%22%3A%2220.00%22%2C%22budget_threshold%22%3A%2210.00%22%2C%22include_projects%22%3A%228000000005863%22%2C%22applyportalrate%22%3A%22-%22%2C%22reporting_to%22%3A%228000000002411%22%2C%22hourly_budget%22%3A%225.00%22%2C%22hourly_budget_threshold%22%3A%223.00%22%7D%5D HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users");
uriBuilder.addParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users';
const params = new URLSearchParams({
'"userdetails"': '[{"email_id":"mark@zylker.com","email_template":"-","role_id":"8000000000991","profile_id":"2223806000000022149","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","include_projects":"8000000005863","applyportalrate":"-","reporting_to":"8000000002411","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
"userdetails" = [{"email_id":"mark@zylker.com","email_template":"-","role_id":"8000000000991","profile_id":"2223806000000022149","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","include_projects":"8000000005863","applyportalrate":"-","reporting_to":"8000000002411","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encoded"userdetails" = [@"[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users?"userdetails"=%@", encoded"userdetails"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_"userdetails" = Uri.pct_encode "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users" ^ "?"userdetails"=" ^ enc_"userdetails") in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
"userdetails" = "[{`"email_id`":`"mark@zylker.com`",`"email_template`":`"-`",`"role_id`":`"8000000000991`",`"profile_id`":`"2223806000000022149`",`"project_ids`":[`"23806000074760021`"],`"bulk_projects`":{`"select_all`":`"false`",`"selected`":{`"group_ids`":[`"2380600000612345`"],`"project_ids`":[`"23806000074760021`"]},`"unselected`":{`"group_ids`":[`"2380600000612345`"],`"project_ids`":[`"23806000074760021`"]},`"rateupdatedprojects`":{`"longkey`":`"1752587000000097269`"},`"costrateupdatedprojects`":{`"longkey`":`"1752587000000097269`"}},`"rate`":`"55.00`",`"cost_rate_per_hour`":`"200`",`"revenue_budget`":`"14.00`",`"cost_budget`":`"20.00`",`"budget_threshold`":`"10.00`",`"include_projects`":`"8000000005863`",`"applyportalrate`":`"-`",`"reporting_to`":`"8000000002411`",`"hourly_budget`":`"5.00`",`"hourly_budget_threshold`":`"3.00`"}]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users"
params <- list(
"userdetails" = "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users")!
components.queryItems = [
URLQueryItem(name: ""userdetails"", value: "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"role_id\":\"8000000000991\",\"profile_id\":\"2223806000000022149\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"include_projects\":\"8000000005863\",\"applyportalrate\":\"-\",\"reporting_to\":\"8000000002411\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
USER_LIMIT_REACHED HTTP 403
USER_ADD_GENERAL_ERROR HTTP 403
USER_INVALID_EMAIL HTTP 403
READONLY_USER_LIMIT_REACHED HTTP 403
USER_ALREADY_ADDED_IN_ORG HTTP 403
USER_ADDED_IN_OTHER_DEPLOYMENT HTTP 403
INVALID_PARAMETER_VALUE HTTP 400
UNAUTHORIZED_ACCESS HTTP 401
USER_ACCOUNT_NOT_CONFIRMED HTTP 403
LITE_USER_LIMIT_REACHED HTTP 403
INPUT_PARAMETER_MISSING HTTP 400
USER_INVITE_REJECTED HTTP 403
Add a new client user to the Zoho Projects portal. Use this API to invite and grant client-level access to a user within a portal.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
JSONArray
requiredEnter the details of the client users to add to the portal.
boolean
Specify whether to convert existing contact users to client users. Accepted values: true or false
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"userdetails" = [{"email_id":"mark@zylker.com","email_template":"-","profile_id":"2223806000000022149","company_name":"New Customer","company_id":"2223806000097701045","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","include_projects":"8000000005863","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]'
--form 'force_add = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser";
params = Map();
params.put("userdetails", [{"email_id":"mark@zylker.com","email_template":"-","profile_id":"2223806000000022149","company_name":"New Customer","company_id":"2223806000097701045","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","include_projects":"8000000005863","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]);
params.put("force_add", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser');
url.searchParams.append('"userdetails"', '[{"email_id":"mark@zylker.com","email_template":"-","profile_id":"2223806000000022149","company_name":"New Customer","company_id":"2223806000097701045","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","include_projects":"8000000005863","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]');
url.searchParams.append('force_add', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser")
params = {
""userdetails"" => "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]",
"force_add" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'"userdetails"' => '[{"email_id":"mark@zylker.com","email_template":"-","profile_id":"2223806000000022149","company_name":"New Customer","company_id":"2223806000097701045","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","include_projects":"8000000005863","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]',
'force_add' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser"
params = {
""userdetails"": "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]",
"force_add": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]", 0);
char *enc_force_add = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser?\"userdetails\"=%s&force_add=%s", enc_"userdetails", enc_force_add);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_"userdetails");
curl_free(enc_force_add);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query[""userdetails""] = "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]";
query["force_add"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]", 0);
char* enc_force_add = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser";
url += "?"userdetails"=" + std::string(enc_"userdetails");
url += "&force_add=" + std::string(enc_force_add);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_"userdetails");
curl_free(enc_force_add);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"userdetails" (java.net.URLEncoder/encode "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]" "UTF-8")
enc-force_add (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser" "?"userdetails"=" enc-"userdetails" "&force_add=" enc-force_add)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser", nil)
q := req.URL.Query()
q.Add(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]")
q.Add("force_add", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser?%22userdetails%22=%5B%7B%22email_id%22%3A%22mark%40zylker.com%22%2C%22email_template%22%3A%22-%22%2C%22profile_id%22%3A%222223806000000022149%22%2C%22company_name%22%3A%22New+Customer%22%2C%22company_id%22%3A%222223806000097701045%22%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%2C%22bulk_projects%22%3A%7B%22select_all%22%3A%22false%22%2C%22selected%22%3A%7B%22group_ids%22%3A%5B%222380600000612345%22%5D%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%7D%2C%22unselected%22%3A%7B%22group_ids%22%3A%5B%222380600000612345%22%5D%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%7D%2C%22rateupdatedprojects%22%3A%7B%22longkey%22%3A%221752587000000097269%22%7D%2C%22costrateupdatedprojects%22%3A%7B%22longkey%22%3A%221752587000000097269%22%7D%7D%2C%22rate%22%3A%2255.00%22%2C%22include_projects%22%3A%228000000005863%22%2C%22cost_rate_per_hour%22%3A%22200%22%2C%22revenue_budget%22%3A%2214.00%22%2C%22cost_budget%22%3A%2220.00%22%2C%22budget_threshold%22%3A%2210.00%22%2C%22hourly_budget%22%3A%225.00%22%2C%22hourly_budget_threshold%22%3A%223.00%22%7D%5D&force_add=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser");
uriBuilder.addParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]");
uriBuilder.addParameter("force_add", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser';
const params = new URLSearchParams({
'"userdetails"': '[{"email_id":"mark@zylker.com","email_template":"-","profile_id":"2223806000000022149","company_name":"New Customer","company_id":"2223806000097701045","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","include_projects":"8000000005863","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]',
'force_add': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
"userdetails" = [{"email_id":"mark@zylker.com","email_template":"-","profile_id":"2223806000000022149","company_name":"New Customer","company_id":"2223806000097701045","project_ids":["23806000074760021"],"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"rate":"55.00","include_projects":"8000000005863","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","hourly_budget":"5.00","hourly_budget_threshold":"3.00"}]
force_add = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]")
urlBuilder.addQueryParameter("force_add", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encoded"userdetails" = [@"[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedForce_add = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser?"userdetails"=%@&force_add=%@", encoded"userdetails", encodedForce_add];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_"userdetails" = Uri.pct_encode "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]" in
let enc_force_add = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser" ^ "?"userdetails"=" ^ enc_"userdetails" ^ "&force_add=" ^ enc_force_add) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
"userdetails" = "[{`"email_id`":`"mark@zylker.com`",`"email_template`":`"-`",`"profile_id`":`"2223806000000022149`",`"company_name`":`"New Customer`",`"company_id`":`"2223806000097701045`",`"project_ids`":[`"23806000074760021`"],`"bulk_projects`":{`"select_all`":`"false`",`"selected`":{`"group_ids`":[`"2380600000612345`"],`"project_ids`":[`"23806000074760021`"]},`"unselected`":{`"group_ids`":[`"2380600000612345`"],`"project_ids`":[`"23806000074760021`"]},`"rateupdatedprojects`":{`"longkey`":`"1752587000000097269`"},`"costrateupdatedprojects`":{`"longkey`":`"1752587000000097269`"}},`"rate`":`"55.00`",`"include_projects`":`"8000000005863`",`"cost_rate_per_hour`":`"200`",`"revenue_budget`":`"14.00`",`"cost_budget`":`"20.00`",`"budget_threshold`":`"10.00`",`"hourly_budget`":`"5.00`",`"hourly_budget_threshold`":`"3.00`"}]"
force_add = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser"
params <- list(
"userdetails" = "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]",
force_add = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/clientuser")!
components.queryItems = [
URLQueryItem(name: ""userdetails"", value: "[{\"email_id\":\"mark@zylker.com\",\"email_template\":\"-\",\"profile_id\":\"2223806000000022149\",\"company_name\":\"New Customer\",\"company_id\":\"2223806000097701045\",\"project_ids\":[\"23806000074760021\"],\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"rate\":\"55.00\",\"include_projects\":\"8000000005863\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"hourly_budget\":\"5.00\",\"hourly_budget_threshold\":\"3.00\"}]"),
URLQueryItem(name: "force_add", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
USER_ALREADY_ADDED_AS_CLIENT HTTP 403
CLIENTUSER_LIMIT_REACHED HTTP 403
INVALID_PARAMETER_VALUE HTTP 400
CLIENTUSER_PROFILE_MISMATCH HTTP 403
CLIENTUSER_DOMAIN_RESTRICTION HTTP 403
Modify the details of an existing user in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
boolean
Specify whether the user rate applies at the portal level. Accepted values: true, false
boolean
Specify whether the user should be notified about updates. Accepted values: true, false.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}'
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]";
params = Map();
params.put("portal_profile", {"id":"23806000006123455432"});
params.put("role", {"id":"23806000006123455432"});
params.put("reporting_to", {"id":"23806000006123455432"});
params.put("business_hours", {"id":"23806000006123455432"});
params.put("bulk_projects", {"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}});
params.put("budget", {"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"});
params.put("apply_portal_rate", false);
params.put("notify", "true");
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]');
const payload = JSON.stringify({"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"});
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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]")
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 = '{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}'
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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"},\"apply_portal_rate\":false,\"notify\":\"true\"}");
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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
request.Content = new StringContent(
@"{""portal_profile"":{""id"":""23806000006123455432""},""role"":{""id"":""23806000006123455432""},""reporting_to"":{""id"":""23806000006123455432""},""business_hours"":{""id"":""23806000006123455432""},""bulk_projects"":{""select_all"":""false"",""selected"":{""group_ids"":[""2380600000612345""],""project_ids"":[""23806000074760021""]},""unselected"":{""group_ids"":[""2380600000612345""],""project_ids"":[""23806000074760021""]},""rateupdatedprojects"":{""longkey"":""1752587000000097269""},""costrateupdatedprojects"":{""longkey"":""1752587000000097269""}},""budget"":{""rate_per_hour"":{""amount"":""-""},""cost_rate_per_hour"":{""amount"":""-""},""cost_effective_from_date"":""2024-08-21""},""apply_portal_rate"":false,""notify"":""true""}",
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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
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, "{\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"},\"apply_portal_rate\":false,\"notify\":\"true\"}");
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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"},\"apply_portal_rate\":false,\"notify\":\"true\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"},\"apply_portal_rate\":false,\"notify\":\"true\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]", 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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}
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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"},\"apply_portal_rate\":false,\"notify\":\"true\"}";
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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]")
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("""{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"];
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 = [@"{\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"},\"apply_portal_rate\":false,\"notify\":\"true\"}" 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://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]" 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|{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}|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 = @'
{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"bulk_projects\":{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"},\"apply_portal_rate\":false,\"notify\":\"true\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users/[ZPUID | EMAILID]")!
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 = """
{"portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"bulk_projects":{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"},"apply_portal_rate":false,"notify":"true"}
""".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
Sample Response
Modify the details of existing users in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3.1/portal/739121528/users' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"users" = [{"id":"23806000006123455432","portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"}}]'
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users";
params = Map();
params.put("users", [{"id":"23806000006123455432","portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"}}]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3.1/portal/739121528/users');
url.searchParams.append('"users"', '[{"id":"23806000006123455432","portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"}}]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users")
params = {
""users"" => "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'"users"' => '[{"id":"23806000006123455432","portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"}}]',
];
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users"
params = {
""users"": "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_"users" = curl_easy_escape(curl, "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users?\"users\"=%s", enc_"users");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_"users");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query[""users""] = "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"users" = curl_easy_escape(curl, "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users";
url += "?"users"=" + std::string(enc_"users");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_"users");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"users" (java.net.URLEncoder/encode "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" "?"users"=" enc-"users")]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users", nil)
q := req.URL.Query()
q.Add(""users"", "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3.1/portal/739121528/users?%22users%22=%5B%7B%22id%22%3A%2223806000006123455432%22%2C%22portal_profile%22%3A%7B%22id%22%3A%2223806000006123455432%22%7D%2C%22role%22%3A%7B%22id%22%3A%2223806000006123455432%22%7D%2C%22reporting_to%22%3A%7B%22id%22%3A%2223806000006123455432%22%7D%2C%22business_hours%22%3A%7B%22id%22%3A%2223806000006123455432%22%7D%2C%22budget%22%3A%7B%22rate_per_hour%22%3A%7B%22amount%22%3A%22-%22%7D%2C%22cost_rate_per_hour%22%3A%7B%22amount%22%3A%22-%22%7D%2C%22cost_effective_from_date%22%3A%222024-08-21%22%7D%7D%5D HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users");
uriBuilder.addParameter(""users"", "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3.1/portal/739121528/users';
const params = new URLSearchParams({
'"users"': '[{"id":"23806000006123455432","portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"}}]'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
"users" = [{"id":"23806000006123455432","portal_profile":{"id":"23806000006123455432"},"role":{"id":"23806000006123455432"},"reporting_to":{"id":"23806000006123455432"},"business_hours":{"id":"23806000006123455432"},"budget":{"rate_per_hour":{"amount":"-"},"cost_rate_per_hour":{"amount":"-"},"cost_effective_from_date":"2024-08-21"}}]import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""users"", "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encoded"users" = [@"[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3.1/portal/739121528/users?"users"=%@", encoded"users"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_"users" = Uri.pct_encode "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" ^ "?"users"=" ^ enc_"users") in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
"users" = "[{`"id`":`"23806000006123455432`",`"portal_profile`":{`"id`":`"23806000006123455432`"},`"role`":{`"id`":`"23806000006123455432`"},`"reporting_to`":{`"id`":`"23806000006123455432`"},`"business_hours`":{`"id`":`"23806000006123455432`"},`"budget`":{`"rate_per_hour`":{`"amount`":`"-`"},`"cost_rate_per_hour`":{`"amount`":`"-`"},`"cost_effective_from_date`":`"2024-08-21`"}}]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users"
params <- list(
"users" = "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3.1/portal/739121528/users")!
components.queryItems = [
URLQueryItem(name: ""users"", value: "[{\"id\":\"23806000006123455432\",\"portal_profile\":{\"id\":\"23806000006123455432\"},\"role\":{\"id\":\"23806000006123455432\"},\"reporting_to\":{\"id\":\"23806000006123455432\"},\"business_hours\":{\"id\":\"23806000006123455432\"},\"budget\":{\"rate_per_hour\":{\"amount\":\"-\"},\"cost_rate_per_hour\":{\"amount\":\"-\"},\"cost_effective_from_date\":\"2024-08-21\"}}]")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This API is deprecated. Use Update User instead.
Modify the user profile and rate in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
long
Enter the ID of the role to assign to the user.
long
Enter the ID of the profile to assign to the user.
String
Enter the invoice rate per hour for the user. Example: $30 per hour
String
Enter the cost per hour for the user. Example: $15 per hour
boolean
Specify whether to apply the portal-level rate to the user. Accepted values: true or false
long
Enter the ZPUID of the user's reporting manager.
boolean
Specify whether to notify the user about the profile update. Accepted values: true or false
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'companyrole = "170876000004915003"'
--form 'companyprofile = "170876000003941041"'
--form 'invoice = "30.00"'
--form 'costrate = "15.00"'
--form 'isapplyportalrate = false'
--form '"bulkprojects" = {"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}}'
--form 'reporting_to = "8000000002411"'
--form 'notify = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]";
params = Map();
params.put("companyrole", "170876000004915003");
params.put("companyprofile", "170876000003941041");
params.put("invoice", "30.00");
params.put("costrate", "15.00");
params.put("isapplyportalrate", false);
params.put("bulkprojects", {"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}});
params.put("reporting_to", "8000000002411");
params.put("notify", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]');
url.searchParams.append('companyrole', '170876000004915003');
url.searchParams.append('companyprofile', '170876000003941041');
url.searchParams.append('invoice', '30.00');
url.searchParams.append('costrate', '15.00');
url.searchParams.append('isapplyportalrate', 'false');
url.searchParams.append('"bulkprojects"', '{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}}');
url.searchParams.append('reporting_to', '8000000002411');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]")
params = {
"companyrole" => "170876000004915003",
"companyprofile" => "170876000003941041",
"invoice" => "30.00",
"costrate" => "15.00",
"isapplyportalrate" => "false",
""bulkprojects"" => "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}",
"reporting_to" => "8000000002411",
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'companyrole' => '170876000004915003',
'companyprofile' => '170876000003941041',
'invoice' => '30.00',
'costrate' => '15.00',
'isapplyportalrate' => 'false',
'"bulkprojects"' => '{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}}',
'reporting_to' => '8000000002411',
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"
params = {
"companyrole": "170876000004915003",
"companyprofile": "170876000003941041",
"invoice": "30.00",
"costrate": "15.00",
"isapplyportalrate": "false",
""bulkprojects"": "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}",
"reporting_to": "8000000002411",
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_companyrole = curl_easy_escape(curl, "170876000004915003", 0);
char *enc_companyprofile = curl_easy_escape(curl, "170876000003941041", 0);
char *enc_invoice = curl_easy_escape(curl, "30.00", 0);
char *enc_costrate = curl_easy_escape(curl, "15.00", 0);
char *enc_isapplyportalrate = curl_easy_escape(curl, "false", 0);
char *enc_"bulkprojects" = curl_easy_escape(curl, "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}", 0);
char *enc_reporting_to = curl_easy_escape(curl, "8000000002411", 0);
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]?companyrole=%s&companyprofile=%s&invoice=%s&costrate=%s&isapplyportalrate=%s&\"bulkprojects\"=%s&reporting_to=%s¬ify=%s", enc_companyrole, enc_companyprofile, enc_invoice, enc_costrate, enc_isapplyportalrate, enc_"bulkprojects", enc_reporting_to, enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_companyrole);
curl_free(enc_companyprofile);
curl_free(enc_invoice);
curl_free(enc_costrate);
curl_free(enc_isapplyportalrate);
curl_free(enc_"bulkprojects");
curl_free(enc_reporting_to);
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["companyrole"] = "170876000004915003";
query["companyprofile"] = "170876000003941041";
query["invoice"] = "30.00";
query["costrate"] = "15.00";
query["isapplyportalrate"] = "false";
query[""bulkprojects""] = "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}";
query["reporting_to"] = "8000000002411";
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_companyrole = curl_easy_escape(curl, "170876000004915003", 0);
char* enc_companyprofile = curl_easy_escape(curl, "170876000003941041", 0);
char* enc_invoice = curl_easy_escape(curl, "30.00", 0);
char* enc_costrate = curl_easy_escape(curl, "15.00", 0);
char* enc_isapplyportalrate = curl_easy_escape(curl, "false", 0);
char* enc_"bulkprojects" = curl_easy_escape(curl, "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}", 0);
char* enc_reporting_to = curl_easy_escape(curl, "8000000002411", 0);
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]";
url += "?companyrole=" + std::string(enc_companyrole);
url += "&companyprofile=" + std::string(enc_companyprofile);
url += "&invoice=" + std::string(enc_invoice);
url += "&costrate=" + std::string(enc_costrate);
url += "&isapplyportalrate=" + std::string(enc_isapplyportalrate);
url += "&"bulkprojects"=" + std::string(enc_"bulkprojects");
url += "&reporting_to=" + std::string(enc_reporting_to);
url += "¬ify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_companyrole);
curl_free(enc_companyprofile);
curl_free(enc_invoice);
curl_free(enc_costrate);
curl_free(enc_isapplyportalrate);
curl_free(enc_"bulkprojects");
curl_free(enc_reporting_to);
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-companyrole (java.net.URLEncoder/encode "170876000004915003" "UTF-8")
enc-companyprofile (java.net.URLEncoder/encode "170876000003941041" "UTF-8")
enc-invoice (java.net.URLEncoder/encode "30.00" "UTF-8")
enc-costrate (java.net.URLEncoder/encode "15.00" "UTF-8")
enc-isapplyportalrate (java.net.URLEncoder/encode "false" "UTF-8")
enc-"bulkprojects" (java.net.URLEncoder/encode "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}" "UTF-8")
enc-reporting_to (java.net.URLEncoder/encode "8000000002411" "UTF-8")
enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" "?companyrole=" enc-companyrole "&companyprofile=" enc-companyprofile "&invoice=" enc-invoice "&costrate=" enc-costrate "&isapplyportalrate=" enc-isapplyportalrate "&"bulkprojects"=" enc-"bulkprojects" "&reporting_to=" enc-reporting_to "¬ify=" enc-notify)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]", nil)
q := req.URL.Query()
q.Add("companyrole", "170876000004915003")
q.Add("companyprofile", "170876000003941041")
q.Add("invoice", "30.00")
q.Add("costrate", "15.00")
q.Add("isapplyportalrate", "false")
q.Add(""bulkprojects"", "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}")
q.Add("reporting_to", "8000000002411")
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]?companyrole=170876000004915003&companyprofile=170876000003941041&invoice=30.00&costrate=15.00&isapplyportalrate=false&%22bulkprojects%22=%7B%22select_all%22%3A%22false%22%2C%22selected%22%3A%7B%22group_ids%22%3A%5B%222380600000612345%22%5D%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%7D%2C%22unselected%22%3A%7B%22group_ids%22%3A%5B%222380600000612345%22%5D%2C%22project_ids%22%3A%5B%2223806000074760021%22%5D%7D%2C%22rateupdatedprojects%22%3A%7B%22longkey%22%3A%221752587000000097269%22%7D%2C%22costrateupdatedprojects%22%3A%7B%22longkey%22%3A%221752587000000097269%22%7D%7D&reporting_to=8000000002411¬ify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]");
uriBuilder.addParameter("companyrole", "170876000004915003");
uriBuilder.addParameter("companyprofile", "170876000003941041");
uriBuilder.addParameter("invoice", "30.00");
uriBuilder.addParameter("costrate", "15.00");
uriBuilder.addParameter("isapplyportalrate", "false");
uriBuilder.addParameter(""bulkprojects"", "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}");
uriBuilder.addParameter("reporting_to", "8000000002411");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]';
const params = new URLSearchParams({
'companyrole': '170876000004915003',
'companyprofile': '170876000003941041',
'invoice': '30.00',
'costrate': '15.00',
'isapplyportalrate': 'false',
'"bulkprojects"': '{"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}}',
'reporting_to': '8000000002411',
'notify': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
companyrole = "170876000004915003"
companyprofile = "170876000003941041"
invoice = "30.00"
costrate = "15.00"
isapplyportalrate = false
"bulkprojects" = {"select_all":"false","selected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"unselected":{"group_ids":["2380600000612345"],"project_ids":["23806000074760021"]},"rateupdatedprojects":{"longkey":"1752587000000097269"},"costrateupdatedprojects":{"longkey":"1752587000000097269"}}
reporting_to = "8000000002411"
notify = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("companyrole", "170876000004915003")
urlBuilder.addQueryParameter("companyprofile", "170876000003941041")
urlBuilder.addQueryParameter("invoice", "30.00")
urlBuilder.addQueryParameter("costrate", "15.00")
urlBuilder.addQueryParameter("isapplyportalrate", "false")
urlBuilder.addQueryParameter(""bulkprojects"", "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}")
urlBuilder.addQueryParameter("reporting_to", "8000000002411")
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedCompanyrole = [@"170876000004915003" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedCompanyprofile = [@"170876000003941041" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedInvoice = [@"30.00" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedCostrate = [@"15.00" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIsapplyportalrate = [@"false" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"bulkprojects" = [@"{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedReporting_to = [@"8000000002411" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]?companyrole=%@&companyprofile=%@&invoice=%@&costrate=%@&isapplyportalrate=%@&"bulkprojects"=%@&reporting_to=%@¬ify=%@", encodedCompanyrole, encodedCompanyprofile, encodedInvoice, encodedCostrate, encodedIsapplyportalrate, encoded"bulkprojects", encodedReporting_to, encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_companyrole = Uri.pct_encode "170876000004915003" in
let enc_companyprofile = Uri.pct_encode "170876000003941041" in
let enc_invoice = Uri.pct_encode "30.00" in
let enc_costrate = Uri.pct_encode "15.00" in
let enc_isapplyportalrate = Uri.pct_encode "false" in
let enc_"bulkprojects" = Uri.pct_encode "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}" in
let enc_reporting_to = Uri.pct_encode "8000000002411" in
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" ^ "?companyrole=" ^ enc_companyrole ^ "&companyprofile=" ^ enc_companyprofile ^ "&invoice=" ^ enc_invoice ^ "&costrate=" ^ enc_costrate ^ "&isapplyportalrate=" ^ enc_isapplyportalrate ^ "&"bulkprojects"=" ^ enc_"bulkprojects" ^ "&reporting_to=" ^ enc_reporting_to ^ "¬ify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
companyrole = "170876000004915003"
companyprofile = "170876000003941041"
invoice = "30.00"
costrate = "15.00"
isapplyportalrate = "false"
"bulkprojects" = "{`"select_all`":`"false`",`"selected`":{`"group_ids`":[`"2380600000612345`"],`"project_ids`":[`"23806000074760021`"]},`"unselected`":{`"group_ids`":[`"2380600000612345`"],`"project_ids`":[`"23806000074760021`"]},`"rateupdatedprojects`":{`"longkey`":`"1752587000000097269`"},`"costrateupdatedprojects`":{`"longkey`":`"1752587000000097269`"}}"
reporting_to = "8000000002411"
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"
params <- list(
companyrole = "170876000004915003",
companyprofile = "170876000003941041",
invoice = "30.00",
costrate = "15.00",
isapplyportalrate = "false",
"bulkprojects" = "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}",
reporting_to = "8000000002411",
notify = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]")!
components.queryItems = [
URLQueryItem(name: "companyrole", value: "170876000004915003"),
URLQueryItem(name: "companyprofile", value: "170876000003941041"),
URLQueryItem(name: "invoice", value: "30.00"),
URLQueryItem(name: "costrate", value: "15.00"),
URLQueryItem(name: "isapplyportalrate", value: "false"),
URLQueryItem(name: ""bulkprojects"", value: "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"unselected\":{\"group_ids\":[\"2380600000612345\"],\"project_ids\":[\"23806000074760021\"]},\"rateupdatedprojects\":{\"longkey\":\"1752587000000097269\"},\"costrateupdatedprojects\":{\"longkey\":\"1752587000000097269\"}}"),
URLQueryItem(name: "reporting_to", value: "8000000002411"),
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
USER_DOES_NOT_HAVE_PERMISSION_FOR_THE_PROFILE HTTP 403
RESOURCE_NOT_FOUND HTTP 404
INVALID_PARAMETER_VALUE HTTP 400
UNAUTHORIZED_ACCESS HTTP 401
INVALID_PROFILE_ID HTTP 400
Activate a specific user in a portal. Use this API to restore a deactivated user's access to the portal.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
String
requiredSpecify whether to notify the user about the activation.Accepted values: true or false.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'notify = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate";
params = Map();
params.put("notify", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate")
params = {
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate"
params = {
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate?notify=%s", enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate";
url += "?notify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate" "?notify=" enc-notify)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate", nil)
q := req.URL.Query()
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate?notify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate';
const params = new URLSearchParams({
'notify': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
notify = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate?notify=%@", encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate" ^ "?notify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate"
params <- list(
notify = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/activate")!
components.queryItems = [
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
USER_LIMIT_REACHED HTTP 403
RESOURCE_NOT_FOUND HTTP 404
ACTIVATE_ERROR HTTP 403
Deactivate a specific user in a portal. Use this API to revoke a user's access to the portal without permanently removing their account.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
String
requiredSpecify whether to notify the user about the deactivation. Accepted values: true or false
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'notify = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate";
params = Map();
params.put("notify", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate")
params = {
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate"
params = {
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate?notify=%s", enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate";
url += "?notify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate" "?notify=" enc-notify)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate", nil)
q := req.URL.Query()
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate?notify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate';
const params = new URLSearchParams({
'notify': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
notify = "true"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate?notify=%@", encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate" ^ "?notify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate"
params <- list(
notify = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/deactivate")!
components.queryItems = [
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
CANT_UPDATE_UNCONFIRMED_USER HTTP 402
RESOURCE_NOT_FOUND HTTP 404
UNAUTHORIZED_ACCESS HTTP 401
DEACTIVATE_ERROR HTTP 403
Activate a specific client user in a portal. Use this API to restore a deactivated client user's access to the portal.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
String
requiredSpecify whether to notify the user about the activation.Accepted values: True or False.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'notify = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate";
params = Map();
params.put("notify", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate")
params = {
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate"
params = {
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate?notify=%s", enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate";
url += "?notify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate" "?notify=" enc-notify)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate", nil)
q := req.URL.Query()
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate?notify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate';
const params = new URLSearchParams({
'notify': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
notify = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate?notify=%@", encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate" ^ "?notify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate"
params <- list(
notify = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/activate")!
components.queryItems = [
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
CLIENTUSER_LIMIT_REACHED HTTP 403
RESOURCE_NOT_FOUND HTTP 404
Deactivate a specific client user in a portal. Use this API to revoke a client user's access to the portal without permanently removing their account.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
String
requiredSpecify whether to notify the client user about the deactivation.Accepted values: True or False.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'notify = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate";
params = Map();
params.put("notify", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate")
params = {
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate"
params = {
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate?notify=%s", enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate";
url += "?notify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate" "?notify=" enc-notify)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate", nil)
q := req.URL.Query()
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate?notify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate';
const params = new URLSearchParams({
'notify': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
notify = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate?notify=%@", encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate" ^ "?notify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate"
params <- list(
notify = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/client-users/[ZPUID | EMAILID]/deactivate")!
components.queryItems = [
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
CANT_UPDATE_UNCONFIRMED_USER HTTP 402
RESOURCE_NOT_FOUND HTTP 404
Remove a specific user from a portal. Use this API to permanently revoke a user's access to a portal.
OAuth Scope:
ZohoProjects.users.DELETE
Parameter
String
requiredSpecify whether to notify the user about the removal. Accepted values: true or false
long
Enter the ZPUID of the reporting manager to reassign after the user is removed.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]?notify=true&reporting_to=8000000002411' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]";
params = Map();
params.put("notify", "true");
params.put("reporting_to", "8000000002411");
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]');
url.searchParams.append('notify', 'true');
url.searchParams.append('reporting_to', '8000000002411');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]")
params = {
"notify" => "true",
"reporting_to" => "8000000002411"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'notify' => 'true',
'reporting_to' => '8000000002411',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"
params = {
"notify": "true",
"reporting_to": "8000000002411"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_notify = curl_easy_escape(curl, "true", 0);
char *enc_reporting_to = curl_easy_escape(curl, "8000000002411", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]?notify=%s&reporting_to=%s", enc_notify, enc_reporting_to);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_notify);
curl_free(enc_reporting_to);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["notify"] = "true";
query["reporting_to"] = "8000000002411";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Delete, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_notify = curl_easy_escape(curl, "true", 0);
char* enc_reporting_to = curl_easy_escape(curl, "8000000002411", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]";
url += "?notify=" + std::string(enc_notify);
url += "&reporting_to=" + std::string(enc_reporting_to);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_notify);
curl_free(enc_reporting_to);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
enc-reporting_to (java.net.URLEncoder/encode "8000000002411" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" "?notify=" enc-notify "&reporting_to=" enc-reporting_to)]
(def response
(client/delete url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]", nil)
q := req.URL.Query()
q.Add("notify", "true")
q.Add("reporting_to", "8000000002411")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]?notify=true&reporting_to=8000000002411 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]");
uriBuilder.addParameter("notify", "true");
uriBuilder.addParameter("reporting_to", "8000000002411");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]';
const params = new URLSearchParams({
'notify': 'true',
'reporting_to': '8000000002411'
});
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
notify = "true"
reporting_to = "8000000002411"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("notify", "true")
urlBuilder.addQueryParameter("reporting_to", "8000000002411")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedReporting_to = [@"8000000002411" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]?notify=%@&reporting_to=%@", encodedNotify, encodedReporting_to];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_notify = Uri.pct_encode "true" in
let enc_reporting_to = Uri.pct_encode "8000000002411" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" ^ "?notify=" ^ enc_notify ^ "&reporting_to=" ^ enc_reporting_to) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
notify = "true"
reporting_to = "8000000002411"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]"
params <- list(
notify = "true",
reporting_to = "8000000002411"
)
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]")!
components.queryItems = [
URLQueryItem(name: "notify", value: "true"),
URLQueryItem(name: "reporting_to", value: "8000000002411")
]
let url = components.url!
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 Input
Sample Response
Possible Errors
CANT_UPDATE_UNCONFIRMED_USER HTTP 402
RESOURCE_NOT_FOUND HTTP 404
UNAUTHORIZED_ACCESS HTTP 401
ERROR_WHILE_DELETE HTTP 403
ERROR_WHILE_DELETE_ADDED_VIA_TEAM HTTP 403
Retrieve audit details of a user from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
String
Enter page token
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs?token=-&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs";
params = Map();
params.put("token", "-");
params.put("filter", {"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs');
url.searchParams.append('token', '-');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs")
params = {
"token" => "-",
""filter"" => "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'token' => '-',
'"filter"' => '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs"
params = {
"token": "-",
""filter"": "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_token = curl_easy_escape(curl, "-", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs?token=%s&\"filter\"=%s", enc_token, enc_"filter");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_token);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["token"] = "-";
query[""filter""] = "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_token = curl_easy_escape(curl, "-", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs";
url += "?token=" + std::string(enc_token);
url += "&"filter"=" + std::string(enc_"filter");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_token);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-token (java.net.URLEncoder/encode "-" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs" "?token=" enc-token "&"filter"=" enc-"filter")]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs", nil)
q := req.URL.Query()
q.Add("token", "-")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs?token=-&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221%22%7D HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs");
uriBuilder.addParameter("token", "-");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs';
const params = new URLSearchParams({
'token': '-',
'"filter"': '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
token = -
"filter" = {"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("token", "-")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedToken = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs?token=%@&"filter"=%@", encodedToken, encoded"filter"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_token = Uri.pct_encode "-" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs" ^ "?token=" ^ enc_token ^ "&"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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
token = "-"
"filter" = "{`"criteria`":[{`"field_name`":`"portal_profile`",`"criteria_condition`":`"is`",`"value`":[`"1752587000000097269`"]}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs"
params <- list(
token = "-",
"filter" = "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/[ZPUID | EMAILID]/audit-logs")!
components.queryItems = [
URLQueryItem(name: "token", value: "-"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This module covers operations related to project users within Zoho Projects. Use this API to retrieve, add, and delete users associated with a project. You can manage client users, non-project users, and view specific user details within the context of a project.
Retrieve all users from a project.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
String
Enter the user type.Accepted values are portal_user,client_user,client_contact
String
Enter the view type.Accepted values are active,inactive,active_read_only,inactive_read_only,subordinates_active,direct_reports_active,activate_user_request,sandboxdevelopers
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the sort criteria. Accepted values: ASC(field_name) or DESC(field_name).
Available fields :
first_namelast_nameportal_profileroleproject_rateproject_cost_ratebusiness_hoursadded_to_project_timeupdated_in_project_timelast_accessed_on
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users?type=portal_user&view_type=active&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28FIRST_NAME%29' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users";
params = Map();
params.put("type", "portal_user");
params.put("view_type", "active");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"});
params.put("sort_by", "ASC(FIRST_NAME)");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users');
url.searchParams.append('type', 'portal_user');
url.searchParams.append('view_type', 'active');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}');
url.searchParams.append('sort_by', 'ASC(FIRST_NAME)');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users")
params = {
"type" => "portal_user",
"view_type" => "active",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}",
"sort_by" => "ASC(FIRST_NAME)"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'type' => 'portal_user',
'view_type' => 'active',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}',
'sort_by' => 'ASC(FIRST_NAME)',
];
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users"
params = {
"type": "portal_user",
"view_type": "active",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}",
"sort_by": "ASC(FIRST_NAME)"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_type = curl_easy_escape(curl, "portal_user", 0);
char *enc_view_type = curl_easy_escape(curl, "active", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(FIRST_NAME)", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users?type=%s&view_type=%s&page=%s&per_page=%s&\"filter\"=%s&sort_by=%s", enc_type, enc_view_type, enc_page, enc_per_page, enc_"filter", enc_sort_by);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["type"] = "portal_user";
query["view_type"] = "active";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}";
query["sort_by"] = "ASC(FIRST_NAME)";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_type = curl_easy_escape(curl, "portal_user", 0);
char* enc_view_type = curl_easy_escape(curl, "active", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(FIRST_NAME)", 0);
std::string url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users";
url += "?type=" + std::string(enc_type);
url += "&view_type=" + std::string(enc_view_type);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
url += "&sort_by=" + std::string(enc_sort_by);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "portal_user" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "active" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(FIRST_NAME)" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users" "?type=" enc-type "&view_type=" enc-view_type "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&sort_by=" enc-sort_by)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users", nil)
q := req.URL.Query()
q.Add("type", "portal_user")
q.Add("view_type", "active")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}")
q.Add("sort_by", "ASC(FIRST_NAME)")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users?type=portal_user&view_type=active&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28FIRST_NAME%29 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users");
uriBuilder.addParameter("type", "portal_user");
uriBuilder.addParameter("view_type", "active");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("sort_by", "ASC(FIRST_NAME)");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users';
const params = new URLSearchParams({
'type': 'portal_user',
'view_type': 'active',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}',
'sort_by': 'ASC(FIRST_NAME)'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
type = "portal_user"
view_type = "active"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"]}],"pattern":"1"}
sort_by = "ASC(FIRST_NAME)"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "portal_user")
urlBuilder.addQueryParameter("view_type", "active")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(FIRST_NAME)")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedType = [@"portal_user" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"active" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(FIRST_NAME)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users?type=%@&view_type=%@&page=%@&per_page=%@&"filter"=%@&sort_by=%@", encodedType, encodedView_type, encodedPage, encodedPer_page, encoded"filter", encodedSort_by];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_type = Uri.pct_encode "portal_user" in
let enc_view_type = Uri.pct_encode "active" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}" in
let enc_sort_by = Uri.pct_encode "ASC(FIRST_NAME)" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users" ^ "?type=" ^ enc_type ^ "&view_type=" ^ enc_view_type ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&sort_by=" ^ enc_sort_by) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
type = "portal_user"
view_type = "active"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"field_name`":`"portal_profile`",`"criteria_condition`":`"is`",`"value`":[`"1752587000000097269`"]}],`"pattern`":`"1`"}"
sort_by = "ASC(FIRST_NAME)"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users"
params <- list(
type = "portal_user",
view_type = "active",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}",
sort_by = "ASC(FIRST_NAME)"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users")!
components.queryItems = [
URLQueryItem(name: "type", value: "portal_user"),
URLQueryItem(name: "view_type", value: "active"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1\"}"),
URLQueryItem(name: "sort_by", value: "ASC(FIRST_NAME)")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This API is deprecated. Use Get All Users instead.
Retrieve all users in a specific project. Use this API to access the complete list of users and their details within a project.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
int
Enter the user type to filter the results. Accepted values: 1 (Users), 2 (Client Users), 3 (Client Contacts), 6 (Resources)
String
Enter the view type to filter users by status. Accepted values: 0 (Inactive), 1 (Active)
String
Enter the sort criteria for the results. Example: last_accessed_time:desc. Accepted values: alphabetical, last_accessed_time, role, profile, added_time with asc or desc
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the IDs of the users to retrieve.
String
Enter the IDs of the client companies to filter the users.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users?type=portal_user&view_type=active&sort=alphabetical%3Aasc&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22-%22%2C%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%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&ids=23806000006417155&company_ids=170876000003941041' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users";
params = Map();
params.put("type", "portal_user");
params.put("view_type", "active");
params.put("sort", "alphabetical:asc");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"});
params.put("ids", "23806000006417155");
params.put("company_ids", "170876000003941041");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users');
url.searchParams.append('type', 'portal_user');
url.searchParams.append('view_type', 'active');
url.searchParams.append('sort', 'alphabetical:asc');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}');
url.searchParams.append('ids', '23806000006417155');
url.searchParams.append('company_ids', '170876000003941041');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users")
params = {
"type" => "portal_user",
"view_type" => "active",
"sort" => "alphabetical:asc",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}",
"ids" => "23806000006417155",
"company_ids" => "170876000003941041"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'type' => 'portal_user',
'view_type' => 'active',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
'ids' => '23806000006417155',
'company_ids' => '170876000003941041',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users"
params = {
"type": "portal_user",
"view_type": "active",
"sort": "alphabetical:asc",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}",
"ids": "23806000006417155",
"company_ids": "170876000003941041"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_type = curl_easy_escape(curl, "portal_user", 0);
char *enc_view_type = curl_easy_escape(curl, "active", 0);
char *enc_sort = curl_easy_escape(curl, "alphabetical:asc", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char *enc_ids = curl_easy_escape(curl, "23806000006417155", 0);
char *enc_company_ids = curl_easy_escape(curl, "170876000003941041", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users?type=%s&view_type=%s&sort=%s&page=%s&per_page=%s&\"filter\"=%s&ids=%s&company_ids=%s", enc_type, enc_view_type, enc_sort, enc_page, enc_per_page, enc_"filter", enc_ids, enc_company_ids);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_sort);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_ids);
curl_free(enc_company_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["type"] = "portal_user";
query["view_type"] = "active";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
query["ids"] = "23806000006417155";
query["company_ids"] = "170876000003941041";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_type = curl_easy_escape(curl, "portal_user", 0);
char* enc_view_type = curl_easy_escape(curl, "active", 0);
char* enc_sort = curl_easy_escape(curl, "alphabetical:asc", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char* enc_ids = curl_easy_escape(curl, "23806000006417155", 0);
char* enc_company_ids = curl_easy_escape(curl, "170876000003941041", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users";
url += "?type=" + std::string(enc_type);
url += "&view_type=" + std::string(enc_view_type);
url += "&sort=" + std::string(enc_sort);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
url += "&ids=" + std::string(enc_ids);
url += "&company_ids=" + std::string(enc_company_ids);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_type);
curl_free(enc_view_type);
curl_free(enc_sort);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_ids);
curl_free(enc_company_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "portal_user" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "active" "UTF-8")
enc-sort (java.net.URLEncoder/encode "alphabetical:asc" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" "UTF-8")
enc-ids (java.net.URLEncoder/encode "23806000006417155" "UTF-8")
enc-company_ids (java.net.URLEncoder/encode "170876000003941041" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users" "?type=" enc-type "&view_type=" enc-view_type "&sort=" enc-sort "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&ids=" enc-ids "&company_ids=" enc-company_ids)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users", nil)
q := req.URL.Query()
q.Add("type", "portal_user")
q.Add("view_type", "active")
q.Add("sort", "alphabetical:asc")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
q.Add("ids", "23806000006417155")
q.Add("company_ids", "170876000003941041")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users?type=portal_user&view_type=active&sort=alphabetical%3Aasc&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22-%22%2C%22field_name%22%3A%22portal_profile%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%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&ids=23806000006417155&company_ids=170876000003941041 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users");
uriBuilder.addParameter("type", "portal_user");
uriBuilder.addParameter("view_type", "active");
uriBuilder.addParameter("sort", "alphabetical:asc");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("ids", "23806000006417155");
uriBuilder.addParameter("company_ids", "170876000003941041");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users';
const params = new URLSearchParams({
'type': 'portal_user',
'view_type': 'active',
'sort': 'alphabetical:asc',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
'ids': '23806000006417155',
'company_ids': '170876000003941041'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
type = "portal_user"
view_type = "active"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"portal_profile","criteria_condition":"is","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}
ids = "23806000006417155"
company_ids = "170876000003941041"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "portal_user")
urlBuilder.addQueryParameter("view_type", "active")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
urlBuilder.addQueryParameter("ids", "23806000006417155")
urlBuilder.addQueryParameter("company_ids", "170876000003941041")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedType = [@"portal_user" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"active" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort = [@"alphabetical:asc" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIds = [@"23806000006417155" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedCompany_ids = [@"170876000003941041" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users?type=%@&view_type=%@&sort=%@&page=%@&per_page=%@&"filter"=%@&ids=%@&company_ids=%@", encodedType, encodedView_type, encodedSort, encodedPage, encodedPer_page, encoded"filter", encodedIds, encodedCompany_ids];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_type = Uri.pct_encode "portal_user" in
let enc_view_type = Uri.pct_encode "active" in
let enc_sort = Uri.pct_encode "alphabetical:asc" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let enc_ids = Uri.pct_encode "23806000006417155" in
let enc_company_ids = Uri.pct_encode "170876000003941041" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users" ^ "?type=" ^ enc_type ^ "&view_type=" ^ enc_view_type ^ "&sort=" ^ enc_sort ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&ids=" ^ enc_ids ^ "&company_ids=" ^ enc_company_ids) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
type = "portal_user"
view_type = "active"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"portal_profile`",`"criteria_condition`":`"is`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1`"}"
ids = "23806000006417155"
company_ids = "170876000003941041"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users"
params <- list(
type = "portal_user",
view_type = "active",
sort = "alphabetical:asc",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}",
ids = "23806000006417155",
company_ids = "170876000003941041"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users")!
components.queryItems = [
URLQueryItem(name: "type", value: "portal_user"),
URLQueryItem(name: "view_type", value: "active"),
URLQueryItem(name: "sort", value: "alphabetical:asc"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"portal_profile\",\"criteria_condition\":\"is\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"),
URLQueryItem(name: "ids", value: "23806000006417155"),
URLQueryItem(name: "company_ids", value: "170876000003941041")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
INVALID_PARAMETER_VALUE HTTP 400
This API is deprecated. Use Get Project User Details instead.
Retrieve the details of a specific user in a project. Use this API to access the full profile and information of a user within a project.
OAuth Scope:
ZohoProjects.users.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")!
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
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
Retrieve details of a project user from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")!
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
Add a user to a specific project. Use this API to grant a portal user access to a project.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
boolean
Specify whether to send a notification to the added users. Accepted values: true or false
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"userdetails" = [{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00"}]'
--form 'notify = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers";
params = Map();
params.put("userdetails", [{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00"}]);
params.put("notify", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers');
url.searchParams.append('"userdetails"', '[{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00"}]');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers")
params = {
""userdetails"" => "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]",
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'"userdetails"' => '[{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00"}]',
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers"
params = {
""userdetails"": "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]",
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]", 0);
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers?\"userdetails\"=%s¬ify=%s", enc_"userdetails", enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_"userdetails");
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query[""userdetails""] = "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]";
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]", 0);
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers";
url += "?"userdetails"=" + std::string(enc_"userdetails");
url += "¬ify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_"userdetails");
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"userdetails" (java.net.URLEncoder/encode "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]" "UTF-8")
enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers" "?"userdetails"=" enc-"userdetails" "¬ify=" enc-notify)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers", nil)
q := req.URL.Query()
q.Add(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]")
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers?%22userdetails%22=%5B%7B%22email_id%22%3A%22mark%40zylker.com%22%2C%22profile_id%22%3A%222223806000000022149%22%2C%22role_id%22%3A%228000000000991%22%2C%22rate%22%3A%2255.00%22%2C%22cost_rate_per_hour%22%3A%22200%22%2C%22revenue_budget%22%3A%2214.00%22%2C%22cost_budget%22%3A%2220.00%22%2C%22budget_threshold%22%3A%2210.00%22%7D%5D¬ify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers");
uriBuilder.addParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers';
const params = new URLSearchParams({
'"userdetails"': '[{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00"}]',
'notify': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
"userdetails" = [{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00"}]
notify = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]")
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encoded"userdetails" = [@"[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers?"userdetails"=%@¬ify=%@", encoded"userdetails", encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_"userdetails" = Uri.pct_encode "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]" in
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers" ^ "?"userdetails"=" ^ enc_"userdetails" ^ "¬ify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
"userdetails" = "[{`"email_id`":`"mark@zylker.com`",`"profile_id`":`"2223806000000022149`",`"role_id`":`"8000000000991`",`"rate`":`"55.00`",`"cost_rate_per_hour`":`"200`",`"revenue_budget`":`"14.00`",`"cost_budget`":`"20.00`",`"budget_threshold`":`"10.00`"}]"
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers"
params <- list(
"userdetails" = "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]",
notify = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/projectusers")!
components.queryItems = [
URLQueryItem(name: ""userdetails"", value: "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\"}]"),
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
USER_ALREADY_ADDED_IN_PROJECT HTTP 403
RESOURCE_NOT_FOUND HTTP 404
UNAUTHORIZED_ACCESS HTTP 401
Add a client user to a specific project. Use this API to grant a client user access to a project.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
boolean
Specify whether to send a notification to the added client users. Accepted values: true or false
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"userdetails" = [{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":false}]'
--form 'notify = "true"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser";
params = Map();
params.put("userdetails", [{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":false}]);
params.put("notify", "true");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser');
url.searchParams.append('"userdetails"', '[{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":false}]');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser")
params = {
""userdetails"" => "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]",
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'"userdetails"' => '[{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":false}]',
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser"
params = {
""userdetails"": "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]",
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]", 0);
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser?\"userdetails\"=%s¬ify=%s", enc_"userdetails", enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_"userdetails");
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query[""userdetails""] = "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]";
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"userdetails" = curl_easy_escape(curl, "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]", 0);
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser";
url += "?"userdetails"=" + std::string(enc_"userdetails");
url += "¬ify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_"userdetails");
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"userdetails" (java.net.URLEncoder/encode "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]" "UTF-8")
enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser" "?"userdetails"=" enc-"userdetails" "¬ify=" enc-notify)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser", nil)
q := req.URL.Query()
q.Add(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]")
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser?%22userdetails%22=%5B%7B%22email_id%22%3A%22mark%40zylker.com%22%2C%22profile_id%22%3A%222223806000000022149%22%2C%22role_id%22%3A%228000000000991%22%2C%22rate%22%3A%2255.00%22%2C%22cost_rate_per_hour%22%3A%22200%22%2C%22revenue_budget%22%3A%2214.00%22%2C%22cost_budget%22%3A%2220.00%22%2C%22budget_threshold%22%3A%2210.00%22%2C%22is_readonly%22%3Afalse%7D%5D¬ify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser");
uriBuilder.addParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser';
const params = new URLSearchParams({
'"userdetails"': '[{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":false}]',
'notify': 'true'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
"userdetails" = [{"email_id":"mark@zylker.com","profile_id":"2223806000000022149","role_id":"8000000000991","rate":"55.00","cost_rate_per_hour":"200","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":false}]
notify = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]")
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encoded"userdetails" = [@"[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser?"userdetails"=%@¬ify=%@", encoded"userdetails", encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_"userdetails" = Uri.pct_encode "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]" in
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser" ^ "?"userdetails"=" ^ enc_"userdetails" ^ "¬ify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
"userdetails" = "[{`"email_id`":`"mark@zylker.com`",`"profile_id`":`"2223806000000022149`",`"role_id`":`"8000000000991`",`"rate`":`"55.00`",`"cost_rate_per_hour`":`"200`",`"revenue_budget`":`"14.00`",`"cost_budget`":`"20.00`",`"budget_threshold`":`"10.00`",`"is_readonly`":false}]"
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser"
params <- list(
"userdetails" = "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]",
notify = "true"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clientuser")!
components.queryItems = [
URLQueryItem(name: ""userdetails"", value: "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"200\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":false}]"),
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
CLIENT_ALREADY_EXISTS_IN_PROJECT HTTP 403
CLIENTUSER_ALREADY_ADDED_IN_PROJECT HTTP 403
Modify the details of a specific user in a project. Use this API to modify a user's details within a project using their ZPUID, ZUID, or email address.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
String
Enter the invoice rate per hour for the user. Example: $30 per hour
String
Enter the cost per hour for the user. Example: $15 per hour
long
Enter the ID of the profile to assign to the user.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'invoice = "30.00"'
--form 'costrate = "15.00"'
--form 'profile_id = "2223806000000022149"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
params = Map();
params.put("invoice", "30.00");
params.put("costrate", "15.00");
params.put("profile_id", "2223806000000022149");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]');
url.searchParams.append('invoice', '30.00');
url.searchParams.append('costrate', '15.00');
url.searchParams.append('profile_id', '2223806000000022149');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")
params = {
"invoice" => "30.00",
"costrate" => "15.00",
"profile_id" => "2223806000000022149"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'invoice' => '30.00',
'costrate' => '15.00',
'profile_id' => '2223806000000022149',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
params = {
"invoice": "30.00",
"costrate": "15.00",
"profile_id": "2223806000000022149"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_invoice = curl_easy_escape(curl, "30.00", 0);
char *enc_costrate = curl_easy_escape(curl, "15.00", 0);
char *enc_profile_id = curl_easy_escape(curl, "2223806000000022149", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]?invoice=%s&costrate=%s&profile_id=%s", enc_invoice, enc_costrate, enc_profile_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_invoice);
curl_free(enc_costrate);
curl_free(enc_profile_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["invoice"] = "30.00";
query["costrate"] = "15.00";
query["profile_id"] = "2223806000000022149";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_invoice = curl_easy_escape(curl, "30.00", 0);
char* enc_costrate = curl_easy_escape(curl, "15.00", 0);
char* enc_profile_id = curl_easy_escape(curl, "2223806000000022149", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
url += "?invoice=" + std::string(enc_invoice);
url += "&costrate=" + std::string(enc_costrate);
url += "&profile_id=" + std::string(enc_profile_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_invoice);
curl_free(enc_costrate);
curl_free(enc_profile_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-invoice (java.net.URLEncoder/encode "30.00" "UTF-8")
enc-costrate (java.net.URLEncoder/encode "15.00" "UTF-8")
enc-profile_id (java.net.URLEncoder/encode "2223806000000022149" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" "?invoice=" enc-invoice "&costrate=" enc-costrate "&profile_id=" enc-profile_id)]
(def response
(client/post url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]", nil)
q := req.URL.Query()
q.Add("invoice", "30.00")
q.Add("costrate", "15.00")
q.Add("profile_id", "2223806000000022149")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]?invoice=30.00&costrate=15.00&profile_id=2223806000000022149 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
uriBuilder.addParameter("invoice", "30.00");
uriBuilder.addParameter("costrate", "15.00");
uriBuilder.addParameter("profile_id", "2223806000000022149");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]';
const params = new URLSearchParams({
'invoice': '30.00',
'costrate': '15.00',
'profile_id': '2223806000000022149'
});
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
invoice = "30.00"
costrate = "15.00"
profile_id = "2223806000000022149"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("invoice", "30.00")
urlBuilder.addQueryParameter("costrate", "15.00")
urlBuilder.addQueryParameter("profile_id", "2223806000000022149")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedInvoice = [@"30.00" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedCostrate = [@"15.00" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProfile_id = [@"2223806000000022149" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]?invoice=%@&costrate=%@&profile_id=%@", encodedInvoice, encodedCostrate, encodedProfile_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_invoice = Uri.pct_encode "30.00" in
let enc_costrate = Uri.pct_encode "15.00" in
let enc_profile_id = Uri.pct_encode "2223806000000022149" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" ^ "?invoice=" ^ enc_invoice ^ "&costrate=" ^ enc_costrate ^ "&profile_id=" ^ enc_profile_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
invoice = "30.00"
costrate = "15.00"
profile_id = "2223806000000022149"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
params <- list(
invoice = "30.00",
costrate = "15.00",
profile_id = "2223806000000022149"
)
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")!
components.queryItems = [
URLQueryItem(name: "invoice", value: "30.00"),
URLQueryItem(name: "costrate", value: "15.00"),
URLQueryItem(name: "profile_id", value: "2223806000000022149")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
INVALID_PARAMETER_VALUE HTTP 400
UNAUTHORIZED_ACCESS HTTP 401
Remove a specific user from a project. Use this API to revoke a user's access to a project within a portal.
OAuth Scope:
ZohoProjects.users.DELETE
Parameter
String
requiredSpecify whether to notify the user. Accepted values:true,false
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]?notify=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
params = Map();
params.put("notify", "true");
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]');
url.searchParams.append('notify', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")
params = {
"notify" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'notify' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
params = {
"notify": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_notify = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]?notify=%s", enc_notify);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["notify"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Delete, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_notify = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]";
url += "?notify=" + std::string(enc_notify);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_notify);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-notify (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" "?notify=" enc-notify)]
(def response
(client/delete url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]", nil)
q := req.URL.Query()
q.Add("notify", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]?notify=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]");
uriBuilder.addParameter("notify", "true");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]';
const params = new URLSearchParams({
'notify': 'true'
});
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
notify = "true"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("notify", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedNotify = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]?notify=%@", encodedNotify];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_notify = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" ^ "?notify=" ^ enc_notify) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
notify = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]"
params <- list(
notify = "true"
)
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]")!
components.queryItems = [
URLQueryItem(name: "notify", value: "true")
]
let url = components.url!
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 Input
Sample Response
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
CANNOT_REMOVE_CRM_ASSOCIATED_USER HTTP 403
CANNOT_REMOVE_PROJECTOWNER_FROM_PROJECT HTTP 403
ERROR_WHILE_DELETE_ADDED_VIA_TEAM HTTP 403
CANNOT_REMOVE_ADMIN_FROM_PROJECT HTTP 403
Use this API to retrieve the reportees of a user within Zoho Projects.
Retrieve all subordinates of a specific user in a portal. Use this API to access the list of users who report to a particular user within the portal hierarchy.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
int
Enter the starting index of the records to retrieve.
int
Enter the number of records to retrieve.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants?index=1&range=100' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants";
params = Map();
params.put("index", "1");
params.put("range", "100");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants');
url.searchParams.append('index', '1');
url.searchParams.append('range', '100');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants")
params = {
"index" => "1",
"range" => "100"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'index' => '1',
'range' => '100',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants"
params = {
"index": "1",
"range": "100"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_index = curl_easy_escape(curl, "1", 0);
char *enc_range = curl_easy_escape(curl, "100", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants?index=%s&range=%s", enc_index, enc_range);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_index);
curl_free(enc_range);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["index"] = "1";
query["range"] = "100";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_index = curl_easy_escape(curl, "1", 0);
char* enc_range = curl_easy_escape(curl, "100", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants";
url += "?index=" + std::string(enc_index);
url += "&range=" + std::string(enc_range);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_index);
curl_free(enc_range);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-index (java.net.URLEncoder/encode "1" "UTF-8")
enc-range (java.net.URLEncoder/encode "100" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants" "?index=" enc-index "&range=" enc-range)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants", nil)
q := req.URL.Query()
q.Add("index", "1")
q.Add("range", "100")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants?index=1&range=100 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants");
uriBuilder.addParameter("index", "1");
uriBuilder.addParameter("range", "100");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants';
const params = new URLSearchParams({
'index': '1',
'range': '100'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
index = "1"
range = "100"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("index", "1")
urlBuilder.addQueryParameter("range", "100")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedIndex = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"100" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants?index=%@&range=%@", encodedIndex, encodedRange];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_index = Uri.pct_encode "1" in
let enc_range = Uri.pct_encode "100" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants" ^ "?index=" ^ enc_index ^ "&range=" ^ enc_range) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
index = "1"
range = "100"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants"
params <- list(
index = "1",
range = "100"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/user/[USERID]/descendants")!
components.queryItems = [
URLQueryItem(name: "index", value: "1"),
URLQueryItem(name: "range", value: "100")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
USER_NOT_FOUND HTTP 404
UNAUTHORIZED_ACCESS HTTP 401
This module covers operations related to user export within Zoho Projects. Use this API to export, retrieve export history, and export details for both portal and project users.
Retrieve the details of a specific portal user export using its export ID. Use this API to access the status and download link of a previously initiated export.
OAuth Scope:
ZohoProjects.users.READ, ZohoFiles.files.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export/[EXPORTID]")!
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
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
Retrieve the details of a specific project user export using its export ID. Use this API to access the status and download link of a previously initiated export.
OAuth Scope:
ZohoProjects.users.READ, ZohoFiles.files.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export/[EXPORTID]")!
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
Retrieve the export history of portal users from the past 15 days. Use this API to access the list of previously exported user data within a portal.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
String
requiredEnter the export type to retrieve the corresponding export history. Accepted values: portal_users, all_project_users, portal_clientusers, all_project_clientusers, portal_clients, all_project_clients, portal_contacts, all_project_contacts, portal_allclients
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/export?type=project_users&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export";
params = Map();
params.put("type", "project_users");
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/export');
url.searchParams.append('type', 'project_users');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export")
params = {
"type" => "project_users",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'type' => 'project_users',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export"
params = {
"type": "project_users",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_type = curl_easy_escape(curl, "project_users", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export?type=%s&page=%s&per_page=%s", enc_type, enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["type"] = "project_users";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_type = curl_easy_escape(curl, "project_users", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export";
url += "?type=" + std::string(enc_type);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "project_users" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export" "?type=" enc-type "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export", nil)
q := req.URL.Query()
q.Add("type", "project_users")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/export?type=project_users&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export");
uriBuilder.addParameter("type", "project_users");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/export';
const params = new URLSearchParams({
'type': 'project_users',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
type = "project_users"
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "project_users")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedType = [@"project_users" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/export?type=%@&page=%@&per_page=%@", encodedType, encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_type = Uri.pct_encode "project_users" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export" ^ "?type=" ^ enc_type ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
type = "project_users"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export"
params <- list(
type = "project_users",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export")!
components.queryItems = [
URLQueryItem(name: "type", value: "project_users"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
INVALID_PARAMETER_VALUE HTTP 400
Retrieve the export history of project users from the past 15 days. Use this API to access the list of previously exported user data within a project.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
String
requiredEnter the export type. Accepted values: project_users,project_clientusers,project_clients,project_contacts,project_allclients
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export?type=project_users&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export";
params = Map();
params.put("type", "project_users");
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export');
url.searchParams.append('type', 'project_users');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export")
params = {
"type" => "project_users",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'type' => 'project_users',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export"
params = {
"type": "project_users",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_type = curl_easy_escape(curl, "project_users", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export?type=%s&page=%s&per_page=%s", enc_type, enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["type"] = "project_users";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_type = curl_easy_escape(curl, "project_users", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export";
url += "?type=" + std::string(enc_type);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_type);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "project_users" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export" "?type=" enc-type "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export", nil)
q := req.URL.Query()
q.Add("type", "project_users")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export?type=project_users&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export");
uriBuilder.addParameter("type", "project_users");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export';
const params = new URLSearchParams({
'type': 'project_users',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
type = "project_users"
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "project_users")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedType = [@"project_users" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export?type=%@&page=%@&per_page=%@", encodedType, encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_type = Uri.pct_encode "project_users" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export" ^ "?type=" ^ enc_type ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
type = "project_users"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export"
params <- list(
type = "project_users",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export")!
components.queryItems = [
URLQueryItem(name: "type", value: "project_users"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Export the portal users from the Zoho Projects portal. Use this API to generate a downloadable file of portal user data.
OAuth Scope:
ZohoProjects.users.READ
Parameter
String
requiredEnter the type of users to export. Accepted values: portal_users, all_project_users, portal_clientusers, all_project_clientusers, portal_clients, all_project_clients, portal_contacts, all_project_contacts, portal_allclients
String
requiredEnter the file format for the export. Accepted values: csv, xlsx
String
Enter the encryption password to protect the exported file.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/export' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"type":"project_users","format":"xlsx","access_code":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export";
params = Map();
params.put("type", "project_users");
params.put("format", "xlsx");
params.put("access_code", "-");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/export');
const payload = JSON.stringify({"type":"project_users","format":"xlsx","access_code":"-"});
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://projectsapi.zoho.com/api/v3/portal/739121528/users/export")
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 = '{"type":"project_users","format":"xlsx","access_code":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"type":"project_users","format":"xlsx","access_code":"-"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"type":"project_users","format":"xlsx","access_code":"-"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/users/export");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/users/export");
request.Content = new StringContent(
@"{""type"":""project_users"",""format"":""xlsx"",""access_code"":""-""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/users/export");
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, "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/users/export"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export", 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://projectsapi.zoho.com/api/v3/portal/739121528/users/export HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"type":"project_users","format":"xlsx","access_code":"-"}
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://projectsapi.zoho.com/api/v3/portal/739121528/users/export");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/users/export';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"type":"project_users","format":"xlsx","access_code":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"type":"project_users","format":"xlsx","access_code":"-"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/export")
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("""{"type":"project_users","format":"xlsx","access_code":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/export"];
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 = [@"{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/users/export" 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|{"type":"project_users","format":"xlsx","access_code":"-"}|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 = @'
{"type":"project_users","format":"xlsx","access_code":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/export")!
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 = """
{"type":"project_users","format":"xlsx","access_code":"-"}
""".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
Sample Response
Possible Errors
ONLY_XLSX_SUPPORTED HTTP 400
EXISTING_EXPORT_RUNNING HTTP 409
INVALID_VALUE_NOT_ALLOWED HTTP 400
INVALID_PARAMETER_VALUE HTTP 400
Export all users in a specific project. Use this API to generate a downloadable file of project user data.
OAuth Scope:
ZohoProjects.users.READ
Parameter
String
requiredEnter the type of users to export. Accepted values: project_users, project_clientusers, project_clients, project_contacts, project_allclients
String
requiredEnter the file format for the export. Accepted values: csv, xlsx
String
Enter the encryption password to protect the exported file.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"type":"project_users","format":"xlsx","access_code":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export";
params = Map();
params.put("type", "project_users");
params.put("format", "xlsx");
params.put("access_code", "-");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export');
const payload = JSON.stringify({"type":"project_users","format":"xlsx","access_code":"-"});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export")
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 = '{"type":"project_users","format":"xlsx","access_code":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"type":"project_users","format":"xlsx","access_code":"-"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"type":"project_users","format":"xlsx","access_code":"-"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export");
request.Content = new StringContent(
@"{""type"":""project_users"",""format"":""xlsx"",""access_code"":""-""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export");
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, "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"type":"project_users","format":"xlsx","access_code":"-"}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"type":"project_users","format":"xlsx","access_code":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"type":"project_users","format":"xlsx","access_code":"-"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export")
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("""{"type":"project_users","format":"xlsx","access_code":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export"];
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 = [@"{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export" 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|{"type":"project_users","format":"xlsx","access_code":"-"}|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 = @'
{"type":"project_users","format":"xlsx","access_code":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"type\":\"project_users\",\"format\":\"xlsx\",\"access_code\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/export")!
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 = """
{"type":"project_users","format":"xlsx","access_code":"-"}
""".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
Sample Response
Possible Errors
EXISTING_EXPORT_RUNNING HTTP 409
INVALID_PARAMETER_VALUE HTTP 400
This module covers all operations related to user invitation templates. Use these APIs to retrieve, create, delete, and set invitation templates as the default one.
Retrieve all invitation templates from a portal. Use this API to access the list of email templates available for inviting users to a portal.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
String
Enter a search term to filter the invitation templates.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the sort criteria for the results.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates?search_term=Monica&page=1&per_page=10&sort_by=ASC%28first_name%29' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates";
params = Map();
params.put("search_term", "Monica");
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(first_name)");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates');
url.searchParams.append('search_term', 'Monica');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(first_name)');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates")
params = {
"search_term" => "Monica",
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(first_name)"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'search_term' => 'Monica',
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(first_name)',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates"
params = {
"search_term": "Monica",
"page": "1",
"per_page": "10",
"sort_by": "ASC(first_name)"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_search_term = curl_easy_escape(curl, "Monica", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(first_name)", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates?search_term=%s&page=%s&per_page=%s&sort_by=%s", enc_search_term, enc_page, enc_per_page, enc_sort_by);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["search_term"] = "Monica";
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(first_name)";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_search_term = curl_easy_escape(curl, "Monica", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(first_name)", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates";
url += "?search_term=" + std::string(enc_search_term);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-search_term (java.net.URLEncoder/encode "Monica" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(first_name)" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates" "?search_term=" enc-search_term "&page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates", nil)
q := req.URL.Query()
q.Add("search_term", "Monica")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "ASC(first_name)")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates?search_term=Monica&page=1&per_page=10&sort_by=ASC%28first_name%29 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates");
uriBuilder.addParameter("search_term", "Monica");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(first_name)");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates';
const params = new URLSearchParams({
'search_term': 'Monica',
'page': '1',
'per_page': '10',
'sort_by': 'ASC(first_name)'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
search_term = "Monica"
page = "1"
per_page = "10"
sort_by = "ASC(first_name)"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("search_term", "Monica")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(first_name)")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedSearch_term = [@"Monica" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(first_name)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates?search_term=%@&page=%@&per_page=%@&sort_by=%@", encodedSearch_term, encodedPage, encodedPer_page, encodedSort_by];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_search_term = Uri.pct_encode "Monica" in
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(first_name)" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates" ^ "?search_term=" ^ enc_search_term ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
search_term = "Monica"
page = "1"
per_page = "10"
sort_by = "ASC(first_name)"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates"
params <- list(
search_term = "Monica",
page = "1",
per_page = "10",
sort_by = "ASC(first_name)"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates")!
components.queryItems = [
URLQueryItem(name: "search_term", value: "Monica"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "ASC(first_name)")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the details of a specific invitation template in a portal. Use this API to access the content and configuration of an invitation email template.
OAuth Scope:
ZohoProjects.users.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")!
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
Create a new invitation template in the Zoho Projects portal. Use this API to define a custom email template for inviting users to a portal.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
boolean
default : falseSpecify whether the invitation template is the default template. Accepted values: true or false
String
Enter the module name for the invitation template. Accepted values: Users, Clients
String
max length : 100Enter the name of the invitation template.
String
max length : 250Enter the subject of the invitation email.
String
max length : 7500Enter the content of the invitation email.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates";
params = Map();
params.put("is_default", false);
params.put("module_name", "Users");
params.put("name", "User Invitation");
params.put("subject", "Welcome to the Portal");
params.put("content", "Hello, you have been invited to join the project.");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates');
const payload = JSON.stringify({"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."});
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates")
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 = '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}'
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates");
request.Content = new StringContent(
@"{""is_default"":false,""module_name"":""Users"",""name"":""User Invitation"",""subject"":""Welcome to the Portal"",""content"":""Hello, you have been invited to join the project.""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates");
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, "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates", 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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates")
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("""{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates"];
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 = [@"{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates" 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|{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}|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 = @'
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates")!
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 = """
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}
""".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
Sample Response
Possible Errors
INVALID_TEMPLATE_SUBJECT HTTP 400
INVALID_TEMPLATE_CONTENT_INVITE_URL HTTP 400
INVALID_TEMPLATE_NAME HTTP 400
INVALID_TEMPLATE_CONTENT HTTP 400
DUPLICATE_TEMPLATE_NAME HTTP 400
USER_EMAIL_TEMPLATE_CREATION_LIMIT_REACHED HTTP 403
Update a specific invitation template in a portal. Use this API to modify the content and configuration of an existing invitation email template.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
boolean
default : falseSpecify whether the invitation template is the default template. Accepted values: true or false
String
Enter the module name for the invitation template. Accepted values: Users, Clients
String
max length : 100Enter the updated name of the invitation template.
String
max length : 250Enter the updated subject of the invitation email.
String
max length : 7500Enter the updated content of the invitation email.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]";
params = Map();
params.put("is_default", false);
params.put("module_name", "Users");
params.put("name", "User Invitation");
params.put("subject", "Welcome to the Portal");
params.put("content", "Hello, you have been invited to join the project.");
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]');
const payload = JSON.stringify({"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."});
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")
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 = '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}'
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
request.Content = new StringContent(
@"{""is_default"":false,""module_name"":""Users"",""name"":""User Invitation"",""subject"":""Welcome to the Portal"",""content"":""Hello, you have been invited to join the project.""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
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, "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]", 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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")
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("""{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"];
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 = [@"{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]" 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|{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}|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 = @'
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"is_default\":false,\"module_name\":\"Users\",\"name\":\"User Invitation\",\"subject\":\"Welcome to the Portal\",\"content\":\"Hello, you have been invited to join the project.\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")!
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 = """
{"is_default":false,"module_name":"Users","name":"User Invitation","subject":"Welcome to the Portal","content":"Hello, you have been invited to join the project."}
""".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
Sample Response
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
DUPLICATE_TEMPLATE_NAME HTTP 400
Set a specific invitation template as the default template in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default";
response = invokeUrl
[
url: url
type: PATCH
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.patch(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
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);
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://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
PATCH https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "PATCH"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PATCH"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.patch ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default" -Method PATCH -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
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
Remove the default status of a specific invitation template in a portal.
OAuth Scope:
ZohoProjects.users.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]/make-default")!
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
Remove a specific invitation template from the Zoho Projects portal. Use this API to permanently remove an invitation email template from a portal.
OAuth Scope:
ZohoProjects.users.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/users/email-templates/[EMAIL-TEMPLATEID]")!
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
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
This module covers project-related operations within Zoho Projects. Use this API to retrieve project activity, view or update project edits, get recent projects, manage issues and tasks, retrieve or add default visibility settings, access favorite templates or gallery templates, add projects from templates, and export custom status timelines.
Retrieve the list of all projects from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.projects.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
JSONObject
Enter the filter criteria to retrieve specific projects. The filter is a JSON object containing a list of conditions (criteria) and a logical pattern that defines how those conditions are combined.
String
Specify the sort order for the results. Use the field API name wrapped in ASC() for ascending or DESC() for descending order. For example: ASC(start_date) to sort by start date ascending, DESC(created_time) to sort by creation time descending.
long
The ID of a saved custom view to apply. When provided, the saved view's filter criteria, columns, and sort order are applied. If a filter is also provided, the filter conditions are combined (AND) with the custom view's criteria.
Request Example
- 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://projectsapi.zoho.com/api/v3/portal/739121528/projects?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&view_id=23806000074760021' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1 AND 2"});
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "23806000074760021");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1 AND 2"}');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_id', '23806000074760021');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects")
params = {
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "23806000074760021"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1 AND 2"}',
'sort_by' => 'ASC(last_modified_time)',
'view_id' => '23806000074760021',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects"
params = {
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}",
"sort_by": "ASC(last_modified_time)",
"view_id": "23806000074760021"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects?page=%s&per_page=%s&\"filter\"=%s&sort_by=%s&view_id=%s", enc_page, enc_per_page, enc_"filter", enc_sort_by, enc_view_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "23806000074760021";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
url += "&sort_by=" + std::string(enc_sort_by);
url += "&view_id=" + std::string(enc_view_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "23806000074760021" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects" "?page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&sort_by=" enc-sort_by "&view_id=" enc-view_id)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}")
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("view_id", "23806000074760021")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&view_id=23806000074760021 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "23806000074760021");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1 AND 2"}',
'sort_by': 'ASC(last_modified_time)',
'view_id': '23806000074760021'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1 AND 2"}
sort_by = "ASC(last_modified_time)"
view_id = "23806000074760021"
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "23806000074760021")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000074760021" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects?page=%@&per_page=%@&"filter"=%@&sort_by=%@&view_id=%@", encodedPage, encodedPer_page, encoded"filter", encodedSort_by, encodedView_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}" in
let enc_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
let enc_view_id = Uri.pct_encode "23806000074760021" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"field_name`":`"project`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"field_name`":`"project`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1 AND 2`"}"
sort_by = "ASC(last_modified_time)"
view_id = "23806000074760021"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects"
params <- list(
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}",
sort_by = "ASC(last_modified_time)",
view_id = "23806000074760021"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "view_id", value: "23806000074760021")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve details of a project.
OAuth Scope:
ZohoProjects.projects.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")!
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
Create a new project in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.projects.CREATE
Parameter
String
requiredmax length : 200
Enter the project name.
String
max length : 80000Enter the project description.
String
Enter the project type. Accepted values : active,template
boolean
Specify whether the project is public. Accepted values : true or false
String
Enter the start date of the project (YYYY-MM-DD).
String
Enter the end date of the project (YYYY-MM-DD).
JSONObject
max length : 1000Enter the layout ID to associate with the project.
String
Enter the source from which the project is added. Accepted values : web,api
boolean
Specify whether the project is roll-up project. Accepted values : true or false
JSONObject
max length : 80000Enter the project budget configuration details.
JSONObject
Specify the sub-module settings, to declare sub_module realated configurations.
long
Enter the template ID or existing project ID to copy configuration from.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("project_type", "-");
params.put("owner", {"zpuid":"4000000002055"});
params.put("is_public_project", "-");
params.put("start_date", "2023-12-20");
params.put("end_date", "2024-12-20");
params.put("status", {"id":"4000000062001"});
params.put("layout", {"id":"4000000062001"});
params.put("added_via", "-");
params.put("is_rollup_project", "-");
params.put("budget_info", {"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}});
params.put("project_group", {"id":"4000000062001"});
params.put("sub_module_settings", "-");
params.put("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("copy_from", "-");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects');
const payload = JSON.stringify({"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects")
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":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"-\",\"is_rollup_project\":\"-\",\"budget_info\":{\"billing_method\":\"-\",\"budget_type\":\"-\",\"tracking_method\":\"-\",\"currency\":\"-\",\"cost_budget\":{\"amount\":\"-\"},\"hourly_budget\":\"-\",\"rate_per_hour\":{\"amount\":\"-\"},\"budget_threshold\":{\"amount\":\"-\"},\"hourly_budget_threshold\":\"-\",\"fixed_cost\":{\"amount\":\"-\"},\"cost_per_hour\":{\"amount\":\"-\"},\"revenue_budget\":{\"amount\":\"-\"}},\"project_group\":{\"id\":\"4000000062001\"},\"sub_module_settings\":\"-\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"copy_from\":\"-\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""project_type"":""-"",""owner"":{""zpuid"":""4000000002055""},""is_public_project"":""-"",""start_date"":""2023-12-20"",""end_date"":""2024-12-20"",""status"":{""id"":""4000000062001""},""layout"":{""id"":""4000000062001""},""added_via"":""-"",""is_rollup_project"":""-"",""budget_info"":{""billing_method"":""-"",""budget_type"":""-"",""tracking_method"":""-"",""currency"":""-"",""cost_budget"":{""amount"":""-""},""hourly_budget"":""-"",""rate_per_hour"":{""amount"":""-""},""budget_threshold"":{""amount"":""-""},""hourly_budget_threshold"":""-"",""fixed_cost"":{""amount"":""-""},""cost_per_hour"":{""amount"":""-""},""revenue_budget"":{""amount"":""-""}},""project_group"":{""id"":""4000000062001""},""sub_module_settings"":""-"",""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""copy_from"":""-""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects");
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\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"-\",\"is_rollup_project\":\"-\",\"budget_info\":{\"billing_method\":\"-\",\"budget_type\":\"-\",\"tracking_method\":\"-\",\"currency\":\"-\",\"cost_budget\":{\"amount\":\"-\"},\"hourly_budget\":\"-\",\"rate_per_hour\":{\"amount\":\"-\"},\"budget_threshold\":{\"amount\":\"-\"},\"hourly_budget_threshold\":\"-\",\"fixed_cost\":{\"amount\":\"-\"},\"cost_per_hour\":{\"amount\":\"-\"},\"revenue_budget\":{\"amount\":\"-\"}},\"project_group\":{\"id\":\"4000000062001\"},\"sub_module_settings\":\"-\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"copy_from\":\"-\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"-\",\"is_rollup_project\":\"-\",\"budget_info\":{\"billing_method\":\"-\",\"budget_type\":\"-\",\"tracking_method\":\"-\",\"currency\":\"-\",\"cost_budget\":{\"amount\":\"-\"},\"hourly_budget\":\"-\",\"rate_per_hour\":{\"amount\":\"-\"},\"budget_threshold\":{\"amount\":\"-\"},\"hourly_budget_threshold\":\"-\",\"fixed_cost\":{\"amount\":\"-\"},\"cost_per_hour\":{\"amount\":\"-\"},\"revenue_budget\":{\"amount\":\"-\"}},\"project_group\":{\"id\":\"4000000062001\"},\"sub_module_settings\":\"-\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"copy_from\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"-\",\"is_rollup_project\":\"-\",\"budget_info\":{\"billing_method\":\"-\",\"budget_type\":\"-\",\"tracking_method\":\"-\",\"currency\":\"-\",\"cost_budget\":{\"amount\":\"-\"},\"hourly_budget\":\"-\",\"rate_per_hour\":{\"amount\":\"-\"},\"budget_threshold\":{\"amount\":\"-\"},\"hourly_budget_threshold\":\"-\",\"fixed_cost\":{\"amount\":\"-\"},\"cost_per_hour\":{\"amount\":\"-\"},\"revenue_budget\":{\"amount\":\"-\"}},\"project_group\":{\"id\":\"4000000062001\"},\"sub_module_settings\":\"-\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"copy_from\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects", payload)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
req.Header.Add("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"-\",\"is_rollup_project\":\"-\",\"budget_info\":{\"billing_method\":\"-\",\"budget_type\":\"-\",\"tracking_method\":\"-\",\"currency\":\"-\",\"cost_budget\":{\"amount\":\"-\"},\"hourly_budget\":\"-\",\"rate_per_hour\":{\"amount\":\"-\"},\"budget_threshold\":{\"amount\":\"-\"},\"hourly_budget_threshold\":\"-\",\"fixed_cost\":{\"amount\":\"-\"},\"cost_per_hour\":{\"amount\":\"-\"},\"revenue_budget\":{\"amount\":\"-\"}},\"project_group\":{\"id\":\"4000000062001\"},\"sub_module_settings\":\"-\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"copy_from\":\"-\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects"];
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\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"-\",\"is_rollup_project\":\"-\",\"budget_info\":{\"billing_method\":\"-\",\"budget_type\":\"-\",\"tracking_method\":\"-\",\"currency\":\"-\",\"cost_budget\":{\"amount\":\"-\"},\"hourly_budget\":\"-\",\"rate_per_hour\":{\"amount\":\"-\"},\"budget_threshold\":{\"amount\":\"-\"},\"hourly_budget_threshold\":\"-\",\"fixed_cost\":{\"amount\":\"-\"},\"cost_per_hour\":{\"amount\":\"-\"},\"revenue_budget\":{\"amount\":\"-\"}},\"project_group\":{\"id\":\"4000000062001\"},\"sub_module_settings\":\"-\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"copy_from\":\"-\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
|> fun h -> Cohttp.Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string {json|{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}|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":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"added_via\":\"-\",\"is_rollup_project\":\"-\",\"budget_info\":{\"billing_method\":\"-\",\"budget_type\":\"-\",\"tracking_method\":\"-\",\"currency\":\"-\",\"cost_budget\":{\"amount\":\"-\"},\"hourly_budget\":\"-\",\"rate_per_hour\":{\"amount\":\"-\"},\"budget_threshold\":{\"amount\":\"-\"},\"hourly_budget_threshold\":\"-\",\"fixed_cost\":{\"amount\":\"-\"},\"cost_per_hour\":{\"amount\":\"-\"},\"revenue_budget\":{\"amount\":\"-\"}},\"project_group\":{\"id\":\"4000000062001\"},\"sub_module_settings\":\"-\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"copy_from\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"added_via":"-","is_rollup_project":"-","budget_info":{"billing_method":"-","budget_type":"-","tracking_method":"-","currency":"-","cost_budget":{"amount":"-"},"hourly_budget":"-","rate_per_hour":{"amount":"-"},"budget_threshold":{"amount":"-"},"hourly_budget_threshold":"-","fixed_cost":{"amount":"-"},"cost_per_hour":{"amount":"-"},"revenue_budget":{"amount":"-"}},"project_group":{"id":"4000000062001"},"sub_module_settings":"-","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"copy_from":"-"}
""".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
Sample Response
Modify details of an existing project.
OAuth Scope:
ZohoProjects.projects.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024";
response = invokeUrl
[
url: url
type: PATCH
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.patch(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
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);
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
PATCH https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "PATCH"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PATCH"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.patch ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024" -Method PATCH -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
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
Move a project to the recycle bin.
OAuth Scope:
ZohoProjects.projects.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash";
response = invokeUrl
[
url: url
type: POST
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/trash")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Response
Restore a project from the recycle bin.
OAuth Scope:
ZohoProjects.projects.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore";
response = invokeUrl
[
url: url
type: POST
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/restore")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Response
Remove a project from the recycle bin permanently.
OAuth Scope:
ZohoProjects.projects.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024")!
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
Get Project Associated Modules Details.
OAuth Scope:
ZohoProjects.projects.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/modules")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Response
This module covers project custom views-related operations within Zoho Projects. Use this API to create, update, retrieve, or delete custom views for projects, manage anchor views, and update favorite custom views.
Retrieve details of a custom view including its filter criteria, selected fields, and visibility settings.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
boolean
Specify whether to include all fields in the response. Accepted values : true or false
String
requiredSpecify the project type. Accepted values : active, archive, template
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269?is_showfields=true&project_type=-' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269";
params = Map();
params.put("is_showfields", "true");
params.put("project_type", "-");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269');
url.searchParams.append('is_showfields', 'true');
url.searchParams.append('project_type', '-');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269")
params = {
"is_showfields" => "true",
"project_type" => "-"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'is_showfields' => 'true',
'project_type' => '-',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269"
params = {
"is_showfields": "true",
"project_type": "-"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_is_showfields = curl_easy_escape(curl, "true", 0);
char *enc_project_type = curl_easy_escape(curl, "-", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269?is_showfields=%s&project_type=%s", enc_is_showfields, enc_project_type);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_is_showfields);
curl_free(enc_project_type);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["is_showfields"] = "true";
query["project_type"] = "-";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_is_showfields = curl_easy_escape(curl, "true", 0);
char* enc_project_type = curl_easy_escape(curl, "-", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269";
url += "?is_showfields=" + std::string(enc_is_showfields);
url += "&project_type=" + std::string(enc_project_type);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_is_showfields);
curl_free(enc_project_type);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-is_showfields (java.net.URLEncoder/encode "true" "UTF-8")
enc-project_type (java.net.URLEncoder/encode "-" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269" "?is_showfields=" enc-is_showfields "&project_type=" enc-project_type)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269", nil)
q := req.URL.Query()
q.Add("is_showfields", "true")
q.Add("project_type", "-")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269?is_showfields=true&project_type=- HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269");
uriBuilder.addParameter("is_showfields", "true");
uriBuilder.addParameter("project_type", "-");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269';
const params = new URLSearchParams({
'is_showfields': 'true',
'project_type': '-'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
is_showfields = "true"
project_type = - import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("is_showfields", "true")
urlBuilder.addQueryParameter("project_type", "-")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedIs_showfields = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProject_type = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269?is_showfields=%@&project_type=%@", encodedIs_showfields, encodedProject_type];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_is_showfields = Uri.pct_encode "true" in
let enc_project_type = Uri.pct_encode "-" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269" ^ "?is_showfields=" ^ enc_is_showfields ^ "&project_type=" ^ enc_project_type) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
is_showfields = "true"
project_type = "-"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269"
params <- list(
is_showfields = "true",
project_type = "-"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269")!
components.queryItems = [
URLQueryItem(name: "is_showfields", value: "true"),
URLQueryItem(name: "project_type", value: "-")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve all custom views available for a project.
OAuth Scope:
ZohoProjects.portals.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview")!
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()
Mark a custom view as the default view for a project.
OAuth Scope:
ZohoProjects.portals.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored";
response = invokeUrl
[
url: url
type: POST
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markanchored")!
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()
Mark or unmark a custom view as a favorite in a project.
OAuth Scope:
ZohoProjects.portals.UPDATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite";
response = invokeUrl
[
url: url
type: POST
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.post ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/customview/1752587000000097269/markfavourite")!
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()
This module covers project comments-related operations within Zoho Projects. Use this API to add, update, retrieve, sort, or delete comments on projects and fetch details of specific comments.
Retrieve comments from a project. Use this API to list comments with pagination support.
OAuth Scope:
ZohoProjects.projects.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the sort order. Accepted values:ASC or DESC based on created_time or last_updated_time
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments?page=1&per_page=10&sort_by=ASC%28last_modified_time%29' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(last_modified_time)");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(last_modified_time)"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(last_modified_time)',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(last_modified_time)"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments?page=%s&per_page=%s&sort_by=%s", enc_page, enc_per_page, enc_sort_by);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(last_modified_time)";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "ASC(last_modified_time)")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments?page=1&per_page=10&sort_by=ASC%28last_modified_time%29 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(last_modified_time)'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
sort_by = "ASC(last_modified_time)"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments?page=%@&per_page=%@&sort_by=%@", encodedPage, encodedPer_page, encodedSort_by];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_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 uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
sort_by = "ASC(last_modified_time)"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(last_modified_time)"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
FORBIDDEN HTTP 403
Retrieve details of a specific comment in a project.
OAuth Scope:
ZohoProjects.projects.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")!
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
Add a comment to a project. Use this API to associate attachments if required.
OAuth Scope:
ZohoProjects.projects.CREATE
Parameter
String
requiredmax length : 65535
Enter the comment content.
JSONArray
Specify the attachment IDs.
JSONArray
max length : 2500array size : 0-49
Enter the WorkDrive resource IDs of the files to associate. The WorkDrive resource ID is different from the attachment ID in Zoho Projects. Up to 50 IDs can be passed in a single request. To retrieve the resource ID, refer to the (WorkDrive Upload Large File API). Users without upload permission to the folder or team folder can upload files up to 20 MB only.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments";
params = Map();
params.put("content", "Sample content");
params.put("attachment_ids", "[12345678987654321]");
params.put("thirdparty_id", ["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments');
const payload = JSON.stringify({"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments")
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 = '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments");
request.Content = new StringContent(
@"{""content"":""Sample content"",""attachment_ids"":""[12345678987654321]"",""thirdparty_id"":[""a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments");
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, "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments")
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("""{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments"];
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 = [@"{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments" 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|{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}|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 = @'
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments")!
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 = """
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
""".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
Sample Response
Possible Errors
FORBIDDEN HTTP 403
Modify an existing comment. Use this API to modify content or replace attachments.
OAuth Scope:
ZohoProjects.projects.UPDATE
Parameter
String
requiredmax length : 65535
Enter the comment.
JSONArray
Enter the attachment IDs.
JSONArray
max length : 2500array size : 0-49
Enter the WorkDrive resource IDs of the files to associate. The WorkDrive resource ID is different from the attachment ID in Zoho Projects. Up to 50 IDs can be passed in a single request. To retrieve the resource ID, refer to the (WorkDrive Upload Large File API). Users without upload permission to the folder or team folder can upload files up to 20 MB only.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046";
params = Map();
params.put("content", "Sample content");
params.put("attachment_ids", "[12345678987654321]");
params.put("thirdparty_id", ["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]);
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046');
const payload = JSON.stringify({"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")
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 = '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
request.Content = new StringContent(
@"{""content"":""Sample content"",""attachment_ids"":""[12345678987654321]"",""thirdparty_id"":[""a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
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, "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")
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("""{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"];
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 = [@"{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046" 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|{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}|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 = @'
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\",\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")!
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 = """
{"content":"Sample content","attachment_ids":"[12345678987654321]","thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
""".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
Sample Response
Possible Errors
FORBIDDEN HTTP 403
Remove a comment from a project permanently.
OAuth Scope:
ZohoProjects.projects.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments/1752587000000097046")!
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()
Possible Errors
FORBIDDEN HTTP 403
This module covers all project group related operations within Zoho Projects.
Retrieve all project groups from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.projectgroups.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups")
params = {
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups"
params = {
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups?page=%s&per_page=%s", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups" "?page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups?page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups';
const params = new URLSearchParams({
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups?page=%@&per_page=%@", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups"
params <- list(
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve project groups associated with a user.
OAuth Scope:
ZohoProjects.projectgroups.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups")
params = {
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups"
params = {
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups?page=%s&per_page=%s", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups" "?page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups?page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups';
const params = new URLSearchParams({
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups?page=%@&per_page=%@", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups"
params <- list(
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/my-project-groups")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Add a new project group in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.projectgroups.CREATE
Parameter
String
max length : 100Enter the project group name.
String
Enter the project group type. Accepted values: public or private.
String
max length : 10Enter a prefix of the project group.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Marketing","type":"public","prefix":"MK-01"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups";
params = Map();
params.put("name", "Marketing");
params.put("type", "public");
params.put("prefix", "MK-01");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups');
const payload = JSON.stringify({"name":"Marketing","type":"public","prefix":"MK-01"});
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups")
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":"Marketing","type":"public","prefix":"MK-01"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Marketing","type":"public","prefix":"MK-01"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Marketing","type":"public","prefix":"MK-01"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups");
request.Content = new StringContent(
@"{""name"":""Marketing"",""type"":""public"",""prefix"":""MK-01""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups");
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\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups", 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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Marketing","type":"public","prefix":"MK-01"}
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Marketing","type":"public","prefix":"MK-01"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Marketing","type":"public","prefix":"MK-01"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups")
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":"Marketing","type":"public","prefix":"MK-01"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups"];
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\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups" 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":"Marketing","type":"public","prefix":"MK-01"}|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":"Marketing","type":"public","prefix":"MK-01"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups")!
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":"Marketing","type":"public","prefix":"MK-01"}
""".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
Sample Response
Update details of a project group.
OAuth Scope:
ZohoProjects.projectgroups.UPDATE
Parameter
String
max length : 100Enter the project group name.
String
Enter the project group type. Accepted values: public or private.
String
max length : 10Enter a prefix of the project group.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Marketing","type":"public","prefix":"MK-01"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]";
params = Map();
params.put("name", "Marketing");
params.put("type", "public");
params.put("prefix", "MK-01");
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]');
const payload = JSON.stringify({"name":"Marketing","type":"public","prefix":"MK-01"});
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]")
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":"Marketing","type":"public","prefix":"MK-01"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Marketing","type":"public","prefix":"MK-01"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Marketing","type":"public","prefix":"MK-01"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
request.Content = new StringContent(
@"{""name"":""Marketing"",""type"":""public"",""prefix"":""MK-01""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
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\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]", 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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Marketing","type":"public","prefix":"MK-01"}
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Marketing","type":"public","prefix":"MK-01"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Marketing","type":"public","prefix":"MK-01"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]")
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":"Marketing","type":"public","prefix":"MK-01"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"];
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\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]" 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":"Marketing","type":"public","prefix":"MK-01"}|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":"Marketing","type":"public","prefix":"MK-01"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Marketing\",\"type\":\"public\",\"prefix\":\"MK-01\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]")!
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":"Marketing","type":"public","prefix":"MK-01"}
""".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
Sample Response
Remove a project group from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.projectgroups.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/project-groups/[PROJECT-GROUPID]")!
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
This module covers operations related to project exports in Zoho Projects. Use these APIs to retrieve, create, update, or delete project exports and to fetch export metadata.
Retrieve the Project export form from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.projects.READ
Query Parameter
long
Enter the custom view ID.
long
Enter the export ID.
String
Specify the form opening action. Accepted values: add,edit,clone
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form?view_id=23806000074760021&export_id=17000000049001&mode=add' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form";
params = Map();
params.put("view_id", "23806000074760021");
params.put("export_id", "17000000049001");
params.put("mode", "add");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form');
url.searchParams.append('view_id', '23806000074760021');
url.searchParams.append('export_id', '17000000049001');
url.searchParams.append('mode', 'add');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form")
params = {
"view_id" => "23806000074760021",
"export_id" => "17000000049001",
"mode" => "add"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'view_id' => '23806000074760021',
'export_id' => '17000000049001',
'mode' => 'add',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form"
params = {
"view_id": "23806000074760021",
"export_id": "17000000049001",
"mode": "add"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
char *enc_export_id = curl_easy_escape(curl, "17000000049001", 0);
char *enc_mode = curl_easy_escape(curl, "add", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form?view_id=%s&export_id=%s&mode=%s", enc_view_id, enc_export_id, enc_mode);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_view_id);
curl_free(enc_export_id);
curl_free(enc_mode);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["view_id"] = "23806000074760021";
query["export_id"] = "17000000049001";
query["mode"] = "add";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
char* enc_export_id = curl_easy_escape(curl, "17000000049001", 0);
char* enc_mode = curl_easy_escape(curl, "add", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form";
url += "?view_id=" + std::string(enc_view_id);
url += "&export_id=" + std::string(enc_export_id);
url += "&mode=" + std::string(enc_mode);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_view_id);
curl_free(enc_export_id);
curl_free(enc_mode);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-view_id (java.net.URLEncoder/encode "23806000074760021" "UTF-8")
enc-export_id (java.net.URLEncoder/encode "17000000049001" "UTF-8")
enc-mode (java.net.URLEncoder/encode "add" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form" "?view_id=" enc-view_id "&export_id=" enc-export_id "&mode=" enc-mode)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form", nil)
q := req.URL.Query()
q.Add("view_id", "23806000074760021")
q.Add("export_id", "17000000049001")
q.Add("mode", "add")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form?view_id=23806000074760021&export_id=17000000049001&mode=add HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form");
uriBuilder.addParameter("view_id", "23806000074760021");
uriBuilder.addParameter("export_id", "17000000049001");
uriBuilder.addParameter("mode", "add");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form';
const params = new URLSearchParams({
'view_id': '23806000074760021',
'export_id': '17000000049001',
'mode': 'add'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
view_id = "23806000074760021"
export_id = "17000000049001"
mode = "add"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("view_id", "23806000074760021")
urlBuilder.addQueryParameter("export_id", "17000000049001")
urlBuilder.addQueryParameter("mode", "add")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedView_id = [@"23806000074760021" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedExport_id = [@"17000000049001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedMode = [@"add" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form?view_id=%@&export_id=%@&mode=%@", encodedView_id, encodedExport_id, encodedMode];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_view_id = Uri.pct_encode "23806000074760021" in
let enc_export_id = Uri.pct_encode "17000000049001" in
let enc_mode = Uri.pct_encode "add" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form" ^ "?view_id=" ^ enc_view_id ^ "&export_id=" ^ enc_export_id ^ "&mode=" ^ enc_mode) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
view_id = "23806000074760021"
export_id = "17000000049001"
mode = "add"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form"
params <- list(
view_id = "23806000074760021",
export_id = "17000000049001",
mode = "add"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export-form")!
components.queryItems = [
URLQueryItem(name: "view_id", value: "23806000074760021"),
URLQueryItem(name: "export_id", value: "17000000049001"),
URLQueryItem(name: "mode", value: "add")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Create a project export in the Zoho Projects portal.
Parameter
long
Enter the export ID
String
Enter the export file format. Accepted values: csv,xlsx
JSONArray
array size : 0-1000Specify the fields to include in the export
boolean
Specify whether to include export details. Accepted values : true,false
String
max length : 50Enter the access code
String
Enter the grouping criteria. Accepted values : users,date,client,project
boolean
Specify whether the scheduled export is active or inactive
String
Enter the project type. Accepted values : active,archived,both
JSONArray
array size : 0-100000Specify mandatory fields to include in the export.
boolean
Specify whether export extension is enabled.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export";
params = Map();
params.put("export_id", "17000000049001");
params.put("file_format", "xlsx");
params.put("selected_fields", "-");
params.put("is_file_info_needed", true);
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"});
params.put("schedule_info", {"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}});
params.put("access_code", "SampleAccessCode");
params.put("group_by", "-");
params.put("scheduler_status", true);
params.put("project_type", "-");
params.put("view", {"id":"4000000062001","name":"-"});
params.put("required_fields", [{"id":"4000000062001","api_name":"-"}]);
params.put("is_extension_enabled", "-");
params.put("extensions", {"app_id":"-","custom_data":"-","display_data":"-"});
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export');
const payload = JSON.stringify({"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export")
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 = '{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"export_id\":\"17000000049001\",\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export");
request.Content = new StringContent(
@"{""export_id"":""17000000049001"",""file_format"":""xlsx"",""selected_fields"":""-"",""is_file_info_needed"":true,""filter"":{""criteria"":[{""cfid"":""4000000000242"",""api_name"":""-"",""field_name"":""project"",""criteria_condition"":""contains"",""value"":[""1752587000000097269""],""relative_columns"":[{""cfid"":""4000000000242"",""field_name"":""project"",""offset"":""1"",""unit"":""days"",""prior"":""before"",""is_this_today"":""-""}]}],""pattern"":""1 AND 2""},""schedule_info"":{""name"":""-"",""schedule_datetime"":""-"",""repetative_type"":""-"",""time_span"":""-"",""days_of_week"":""-"",""repeat_on_type"":""-"",""repeat_on_value"":""-"",""ends_after_type"":""-"",""ends_after_value"":""-"",""skip_type"":""-"",""mail_to_user"":{""zpuid"":""4000000002055""}},""access_code"":""SampleAccessCode"",""group_by"":""-"",""scheduler_status"":true,""project_type"":""-"",""view"":{""id"":""4000000062001"",""name"":""-""},""required_fields"":[{""id"":""4000000062001"",""api_name"":""-""}],""is_extension_enabled"":""-"",""extensions"":{""app_id"":""-"",""custom_data"":""-"",""display_data"":""-""}}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export");
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, "{\"export_id\":\"17000000049001\",\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"export_id\":\"17000000049001\",\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"export_id\":\"17000000049001\",\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"export_id\":\"17000000049001\",\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export")
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("""{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export"];
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 = [@"{\"export_id\":\"17000000049001\",\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export" 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|{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}|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 = @'
{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"export_id\":\"17000000049001\",\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export")!
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 = """
{"export_id":"17000000049001","file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}
""".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
Sample Response
Retrieve the details of project exports from the Zoho Projects portal.
Query Parameter
String
Enter the export type. Accepted values: portal,all
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
boolean
required Specify whether to retrieve details of the completed exports Accepted values - true,false
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export?view=-&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22-%22%2C%22field_name%22%3A%22project%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&page=1&per_page=10&is_completed=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export";
params = Map();
params.put("view", "-");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"});
params.put("page", "1");
params.put("per_page", "10");
params.put("is_completed", true);
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export');
url.searchParams.append('view', '-');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"}');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('is_completed', 'true');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export")
params = {
"view" => "-",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"page" => "1",
"per_page" => "10",
"is_completed" => "true"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'view' => '-',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"}',
'page' => '1',
'per_page' => '10',
'is_completed' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export"
params = {
"view": "-",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"page": "1",
"per_page": "10",
"is_completed": "true"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_view = curl_easy_escape(curl, "-", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_is_completed = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export?view=%s&\"filter\"=%s&page=%s&per_page=%s&is_completed=%s", enc_view, enc_"filter", enc_page, enc_per_page, enc_is_completed);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_view);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_is_completed);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["view"] = "-";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
query["page"] = "1";
query["per_page"] = "10";
query["is_completed"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_view = curl_easy_escape(curl, "-", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_is_completed = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export";
url += "?view=" + std::string(enc_view);
url += "&"filter"=" + std::string(enc_"filter");
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&is_completed=" + std::string(enc_is_completed);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_view);
curl_free(enc_"filter");
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_is_completed);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-view (java.net.URLEncoder/encode "-" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-is_completed (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export" "?view=" enc-view "&"filter"=" enc-"filter" "&page=" enc-page "&per_page=" enc-per_page "&is_completed=" enc-is_completed)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export", nil)
q := req.URL.Query()
q.Add("view", "-")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("is_completed", "true")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export?view=-&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22-%22%2C%22field_name%22%3A%22project%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22project%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&page=1&per_page=10&is_completed=true HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export");
uriBuilder.addParameter("view", "-");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("is_completed", "true");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export';
const params = new URLSearchParams({
'view': '-',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"}',
'page': '1',
'per_page': '10',
'is_completed': 'true'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
view = -
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"}
page = "1"
per_page = "10"
is_completed = trueimport java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("view", "-")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("is_completed", "true")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedView = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIs_completed = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export?view=%@&"filter"=%@&page=%@&per_page=%@&is_completed=%@", encodedView, encoded"filter", encodedPage, encodedPer_page, encodedIs_completed];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_view = Uri.pct_encode "-" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_is_completed = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export" ^ "?view=" ^ enc_view ^ "&"filter"=" ^ enc_"filter" ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&is_completed=" ^ enc_is_completed) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
view = "-"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"project`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"field_name`":`"project`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`",`"is_this_today`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
page = "1"
per_page = "10"
is_completed = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export"
params <- list(
view = "-",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
page = "1",
per_page = "10",
is_completed = "true"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export")!
components.queryItems = [
URLQueryItem(name: "view", value: "-"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "is_completed", value: "true")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Modify the details of an existing project export in the Zoho Projects portal.
Parameter
String
requiredEnter the export file format. Accepted values: csv,xlsx
JSONArray
array size : 0-1000Specify the fields to include in the export
boolean
Specify whether to include export details. Accepted values : {regex}
String
max length : 50Enter the access cod
String
Enter the grouping criteria. Accepted values : users,date,client,project
boolean
Specify whether the scheduled export is active or inactive
String
Enter the project type. Accepted values : active,archived,both
JSONArray
array size : 0-100000Specify mandatory fields to include in the export.
boolean
Specify whether export extension is enabled.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]";
params = Map();
params.put("file_format", "xlsx");
params.put("selected_fields", "-");
params.put("is_file_info_needed", true);
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"});
params.put("schedule_info", {"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}});
params.put("access_code", "SampleAccessCode");
params.put("group_by", "-");
params.put("scheduler_status", true);
params.put("project_type", "-");
params.put("view", {"id":"4000000062001","name":"-"});
params.put("required_fields", [{"id":"4000000062001","api_name":"-"}]);
params.put("is_extension_enabled", "-");
params.put("extensions", {"app_id":"-","custom_data":"-","display_data":"-"});
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]');
const payload = JSON.stringify({"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]")
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 = '{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
request.Content = new StringContent(
@"{""file_format"":""xlsx"",""selected_fields"":""-"",""is_file_info_needed"":true,""filter"":{""criteria"":[{""cfid"":""4000000000242"",""api_name"":""-"",""field_name"":""project"",""criteria_condition"":""contains"",""value"":[""1752587000000097269""],""relative_columns"":[{""cfid"":""4000000000242"",""field_name"":""project"",""offset"":""1"",""unit"":""days"",""prior"":""before"",""is_this_today"":""-""}]}],""pattern"":""1 AND 2""},""schedule_info"":{""name"":""-"",""schedule_datetime"":""-"",""repetative_type"":""-"",""time_span"":""-"",""days_of_week"":""-"",""repeat_on_type"":""-"",""repeat_on_value"":""-"",""ends_after_type"":""-"",""ends_after_value"":""-"",""skip_type"":""-"",""mail_to_user"":{""zpuid"":""4000000002055""}},""access_code"":""SampleAccessCode"",""group_by"":""-"",""scheduler_status"":true,""project_type"":""-"",""view"":{""id"":""4000000062001"",""name"":""-""},""required_fields"":[{""id"":""4000000062001"",""api_name"":""-""}],""is_extension_enabled"":""-"",""extensions"":{""app_id"":""-"",""custom_data"":""-"",""display_data"":""-""}}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
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, "{\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]")
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("""{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"];
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 = [@"{\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]" 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|{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}|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 = @'
{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"file_format\":\"xlsx\",\"selected_fields\":\"-\",\"is_file_info_needed\":true,\"filter\":{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"project\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"project\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1 AND 2\"},\"schedule_info\":{\"name\":\"-\",\"schedule_datetime\":\"-\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"days_of_week\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"mail_to_user\":{\"zpuid\":\"4000000002055\"}},\"access_code\":\"SampleAccessCode\",\"group_by\":\"-\",\"scheduler_status\":true,\"project_type\":\"-\",\"view\":{\"id\":\"4000000062001\",\"name\":\"-\"},\"required_fields\":[{\"id\":\"4000000062001\",\"api_name\":\"-\"}],\"is_extension_enabled\":\"-\",\"extensions\":{\"app_id\":\"-\",\"custom_data\":\"-\",\"display_data\":\"-\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]")!
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 = """
{"file_format":"xlsx","selected_fields":"-","is_file_info_needed":true,"filter":{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"project","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"project","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1 AND 2"},"schedule_info":{"name":"-","schedule_datetime":"-","repetative_type":"-","time_span":"-","days_of_week":"-","repeat_on_type":"-","repeat_on_value":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","mail_to_user":{"zpuid":"4000000002055"}},"access_code":"SampleAccessCode","group_by":"-","scheduler_status":true,"project_type":"-","view":{"id":"4000000062001","name":"-"},"required_fields":[{"id":"4000000062001","api_name":"-"}],"is_extension_enabled":"-","extensions":{"app_id":"-","custom_data":"-","display_data":"-"}}
""".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
Sample Response
Remove a project export from the Zoho Projects portal.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/export/[EXPORTID]")!
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
This module covers Phase-related operations within Zoho Projects. Use this API to create, retrieve, update, manage, delete, move, or clone Phases.
Retrieve all the phases from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.milestones.READ
Query Parameter
int
Enter the page number to retrieve.
int
Enter the number of records to be displayed per page.
String
Specify the sort criteria. Accepted values: start_date, end_date, created_time, last_modified_time, sequence
long
Enter the ID of the custom view.
String
Enter the phase IDs to retrieve.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/phases?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=23806000097545166&milestone_ids=139655000000057003%2C139655000000057004%2C139655000000057005&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22phase_name%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/phases";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "23806000097545166");
params.put("milestone_ids", "139655000000057003,139655000000057004,139655000000057005");
params.put("filter", {"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/phases');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_id', '23806000097545166');
url.searchParams.append('milestone_ids', '139655000000057003,139655000000057004,139655000000057005');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/phases")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "23806000097545166",
"milestone_ids" => "139655000000057003,139655000000057004,139655000000057005",
""filter"" => "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(last_modified_time)',
'view_id' => '23806000097545166',
'milestone_ids' => '139655000000057003,139655000000057004,139655000000057005',
'"filter"' => '{"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/phases" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/phases"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(last_modified_time)",
"view_id": "23806000097545166",
"milestone_ids": "139655000000057003,139655000000057004,139655000000057005",
""filter"": "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "23806000097545166", 0);
char *enc_milestone_ids = curl_easy_escape(curl, "139655000000057003,139655000000057004,139655000000057005", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/phases?page=%s&per_page=%s&sort_by=%s&view_id=%s&milestone_ids=%s&\"filter\"=%s", enc_page, enc_per_page, enc_sort_by, enc_view_id, enc_milestone_ids, enc_"filter");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_milestone_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "23806000097545166";
query["milestone_ids"] = "139655000000057003,139655000000057004,139655000000057005";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/phases") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "23806000097545166", 0);
char* enc_milestone_ids = curl_easy_escape(curl, "139655000000057003,139655000000057004,139655000000057005", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/phases";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&view_id=" + std::string(enc_view_id);
url += "&milestone_ids=" + std::string(enc_milestone_ids);
url += "&"filter"=" + std::string(enc_"filter");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_milestone_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
enc-milestone_ids (java.net.URLEncoder/encode "139655000000057003,139655000000057004,139655000000057005" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/phases" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&view_id=" enc-view_id "&milestone_ids=" enc-milestone_ids "&"filter"=" enc-"filter")]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/phases", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("view_id", "23806000097545166")
q.Add("milestone_ids", "139655000000057003,139655000000057004,139655000000057005")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/phases?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=23806000097545166&milestone_ids=139655000000057003%2C139655000000057004%2C139655000000057005&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22phase_name%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/phases");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "23806000097545166");
uriBuilder.addParameter("milestone_ids", "139655000000057003,139655000000057004,139655000000057005");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/phases';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(last_modified_time)',
'view_id': '23806000097545166',
'milestone_ids': '139655000000057003,139655000000057004,139655000000057005',
'"filter"': '{"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
sort_by = "ASC(last_modified_time)"
view_id = "23806000097545166"
milestone_ids = "139655000000057003,139655000000057004,139655000000057005"
"filter" = {"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/phases".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "23806000097545166")
urlBuilder.addQueryParameter("milestone_ids", "139655000000057003,139655000000057004,139655000000057005")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedMilestone_ids = [@"139655000000057003,139655000000057004,139655000000057005" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/phases?page=%@&per_page=%@&sort_by=%@&view_id=%@&milestone_ids=%@&"filter"=%@", encodedPage, encodedPer_page, encodedSort_by, encodedView_id, encodedMilestone_ids, encoded"filter"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_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 "23806000097545166" in
let enc_milestone_ids = Uri.pct_encode "139655000000057003,139655000000057004,139655000000057005" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/phases" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&milestone_ids=" ^ enc_milestone_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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
sort_by = "ASC(last_modified_time)"
view_id = "23806000097545166"
milestone_ids = "139655000000057003,139655000000057004,139655000000057005"
"filter" = "{`"criteria`":[{`"cfid`":`"23806000091055001`",`"api_name`":`"phase_name`",`"field_name`":`"status`",`"criteria_condition`":`"is`",`"value`":[`"23806000097533111`"],`"relative_columns`":[{`"cfid`":`"23806000091055001`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/phases" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/phases"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(last_modified_time)",
view_id = "23806000097545166",
milestone_ids = "139655000000057003,139655000000057004,139655000000057005",
"filter" = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/phases")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "view_id", value: "23806000097545166"),
URLQueryItem(name: "milestone_ids", value: "139655000000057003,139655000000057004,139655000000057005"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve phases from a project. Use this API to fetch phase list using filters, sorting, and pagination.
OAuth Scope:
ZohoProjects.milestones.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Specify the sort criteria. Accepted values: start_date, end_date, created_time, last_modified_time, sequence.
long
Enter the ID of the custom view.
String
Enter the phase IDs to retrieve specific records.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=23806000097545166&milestone_ids=139655000000057003%2C139655000000057004%2C139655000000057005&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22phase_name%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "23806000097545166");
params.put("milestone_ids", "139655000000057003,139655000000057004,139655000000057005");
params.put("filter", {"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_id', '23806000097545166');
url.searchParams.append('milestone_ids', '139655000000057003,139655000000057004,139655000000057005');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "23806000097545166",
"milestone_ids" => "139655000000057003,139655000000057004,139655000000057005",
""filter"" => "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(last_modified_time)',
'view_id' => '23806000097545166',
'milestone_ids' => '139655000000057003,139655000000057004,139655000000057005',
'"filter"' => '{"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(last_modified_time)",
"view_id": "23806000097545166",
"milestone_ids": "139655000000057003,139655000000057004,139655000000057005",
""filter"": "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "23806000097545166", 0);
char *enc_milestone_ids = curl_easy_escape(curl, "139655000000057003,139655000000057004,139655000000057005", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases?page=%s&per_page=%s&sort_by=%s&view_id=%s&milestone_ids=%s&\"filter\"=%s", enc_page, enc_per_page, enc_sort_by, enc_view_id, enc_milestone_ids, enc_"filter");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_milestone_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "23806000097545166";
query["milestone_ids"] = "139655000000057003,139655000000057004,139655000000057005";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "23806000097545166", 0);
char* enc_milestone_ids = curl_easy_escape(curl, "139655000000057003,139655000000057004,139655000000057005", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&view_id=" + std::string(enc_view_id);
url += "&milestone_ids=" + std::string(enc_milestone_ids);
url += "&"filter"=" + std::string(enc_"filter");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_milestone_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
enc-milestone_ids (java.net.URLEncoder/encode "139655000000057003,139655000000057004,139655000000057005" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&view_id=" enc-view_id "&milestone_ids=" enc-milestone_ids "&"filter"=" enc-"filter")]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("view_id", "23806000097545166")
q.Add("milestone_ids", "139655000000057003,139655000000057004,139655000000057005")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=23806000097545166&milestone_ids=139655000000057003%2C139655000000057004%2C139655000000057005&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22phase_name%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "23806000097545166");
uriBuilder.addParameter("milestone_ids", "139655000000057003,139655000000057004,139655000000057005");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(last_modified_time)',
'view_id': '23806000097545166',
'milestone_ids': '139655000000057003,139655000000057004,139655000000057005',
'"filter"': '{"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
sort_by = "ASC(last_modified_time)"
view_id = "23806000097545166"
milestone_ids = "139655000000057003,139655000000057004,139655000000057005"
"filter" = {"criteria":[{"cfid":"23806000091055001","api_name":"phase_name","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "23806000097545166")
urlBuilder.addQueryParameter("milestone_ids", "139655000000057003,139655000000057004,139655000000057005")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedMilestone_ids = [@"139655000000057003,139655000000057004,139655000000057005" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases?page=%@&per_page=%@&sort_by=%@&view_id=%@&milestone_ids=%@&"filter"=%@", encodedPage, encodedPer_page, encodedSort_by, encodedView_id, encodedMilestone_ids, encoded"filter"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_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 "23806000097545166" in
let enc_milestone_ids = Uri.pct_encode "139655000000057003,139655000000057004,139655000000057005" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&milestone_ids=" ^ enc_milestone_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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
sort_by = "ASC(last_modified_time)"
view_id = "23806000097545166"
milestone_ids = "139655000000057003,139655000000057004,139655000000057005"
"filter" = "{`"criteria`":[{`"cfid`":`"23806000091055001`",`"api_name`":`"phase_name`",`"field_name`":`"status`",`"criteria_condition`":`"is`",`"value`":[`"23806000097533111`"],`"relative_columns`":[{`"cfid`":`"23806000091055001`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(last_modified_time)",
view_id = "23806000097545166",
milestone_ids = "139655000000057003,139655000000057004,139655000000057005",
"filter" = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "view_id", value: "23806000097545166"),
URLQueryItem(name: "milestone_ids", value: "139655000000057003,139655000000057004,139655000000057005"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"phase_name\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve details of a specific phase. Use this API to fetch complete phase information using the phase ID.
OAuth Scope:
ZohoProjects.milestones.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")!
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
Create a new phase in a project. Use this API to define phase details such as name, dates, owner, status, and budget.
OAuth Scope:
ZohoProjects.milestones.CREATE
Parameter
String
requiredmax length : 100
Enter the name of the phase
String
Enter the start date of the phase
String
Enter the end date of the phase
String
Enter the ZPUID of the owner
String
Enter the flag type of the phase. Accepted values: Internal or External
long
Enter the ID of the project
long
Enter the ID of the status
String
max length : 1000Enter the Tag IDs
long
Enter the ID of the phase that will follow the new phase
long
Enter the ID of the phase that will precede the new phase
String
Enter the budget of the phase
String
Enter the threshold value for the budget
String
Enter the hourly budget of the phase
String
Enter the hourly budget threshold of the phase
String
Enter the revenue budget for the phase
String
max length : 255Enter the custom field value accepting character data type
String
max length : 1000Enter the custom field value accepting text data type
long
max length : 19Enter the custom field value accepting integer type
long
max length : 19Enter the custom field value accepting user ID
double
Enter the custom field value accepting double percision data type
String
Enter the custom field value accepting date
String
max length : 1000Enter the custom field value accepting any data type
JSONArray
array size : 0-20Enter the custom field value accepting multiple values
JSONArray
array size : 0-20Enter the custom field value accepting multiple user ZPUIDs
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases";
params = Map();
params.put("name", "Authentication Module Security Audit");
params.put("start_date", "05/28/2025");
params.put("end_date", "10/28/2025");
params.put("owner_zpuid", "1752587000000097024");
params.put("flag", "internal");
params.put("project_id", "23806000097545166");
params.put("status_id", "238060000975451234");
params.put("tagIds", "238060000975451234,238060000975451234");
params.put("next", "23806000097545224");
params.put("previous", "23806000097545222");
params.put("budget", "98420000");
params.put("threshold", "250000");
params.put("hourly_budget", "9895000");
params.put("hourly_budget_threshold", "250000");
params.put("revenue_budget", "1023000");
params.put("udf_char[0-9]{1,3}", "Critical security vulnerability identified in the user authentication module affecting session token integrity.");
params.put("udf_text[0-9]{1,2}", "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("udf_long[0-9]{1,2}", "123987542233");
params.put("udf_user[0-9]{1,2}", "139655000000057003");
params.put("udf_double[0-9]{1,2}", "123.445");
params.put("udf_date[0-9]{1,2}", "23/09/2024");
params.put("udf_encrypt([1-9]|10)", "Mh@2024#SecAudit");
params.put("udf_multi[0-9]{1,2}", ["issue","bug","security","needfix"]);
params.put("udf_multiuser[0-9]{1,2}", ["139655000000057003","139655000000057004","139655000000057005"]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases');
const payload = JSON.stringify({"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases")
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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"project_id\":\"23806000097545166\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"next\":\"23806000097545224\",\"previous\":\"23806000097545222\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases");
request.Content = new StringContent(
@"{""name"":""Authentication Module Security Audit"",""start_date"":""05/28/2025"",""end_date"":""10/28/2025"",""owner_zpuid"":""1752587000000097024"",""flag"":""internal"",""project_id"":""23806000097545166"",""status_id"":""238060000975451234"",""tagIds"":""238060000975451234,238060000975451234"",""next"":""23806000097545224"",""previous"":""23806000097545222"",""budget"":""98420000"",""threshold"":""250000"",""hourly_budget"":""9895000"",""hourly_budget_threshold"":""250000"",""revenue_budget"":""1023000"",""udf_char[0-9]{1,3}"":""Critical security vulnerability identified in the user authentication module affecting session token integrity."",""udf_text[0-9]{1,2}"":""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."",""udf_long[0-9]{1,2}"":""123987542233"",""udf_user[0-9]{1,2}"":""139655000000057003"",""udf_double[0-9]{1,2}"":""123.445"",""udf_date[0-9]{1,2}"":""23/09/2024"",""udf_encrypt([1-9]|10)"":""Mh@2024#SecAudit"",""udf_multi[0-9]{1,2}"":[""issue"",""bug"",""security"",""needfix""],""udf_multiuser[0-9]{1,2}"":[""139655000000057003"",""139655000000057004"",""139655000000057005""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases");
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 Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"project_id\":\"23806000097545166\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"next\":\"23806000097545224\",\"previous\":\"23806000097545222\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"project_id\":\"23806000097545166\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"next\":\"23806000097545224\",\"previous\":\"23806000097545222\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"project_id\":\"23806000097545166\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"next\":\"23806000097545224\",\"previous\":\"23806000097545222\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05\/28\/2025\",\"end_date\":\"10\/28\/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"project_id\":\"23806000097545166\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"next\":\"23806000097545224\",\"previous\":\"23806000097545222\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23\/09\/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases")
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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases"];
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 Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"project_id\":\"23806000097545166\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"next\":\"23806000097545224\",\"previous\":\"23806000097545222\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases" 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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}|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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"project_id\":\"23806000097545166\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"next\":\"23806000097545224\",\"previous\":\"23806000097545222\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases")!
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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","project_id":"23806000097545166","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","next":"23806000097545224","previous":"23806000097545222","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}
""".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
Sample Response
Modify the details of a phase in a project
OAuth Scope:
ZohoProjects.milestones.CREATE
Parameter
String
max length : 100Enter the name of the phase.
String
Enter the start date of the phase.
String
Enter the end date of the phase.
String
Enter the ZPUID of the phase owner.
String
Specify the flag type for the phase. Accepted values: Internal or External.
long
Enter the status ID for the phase.
String
max length : 1000Enter the tag IDs to associate with the phase.
String
Enter the budget value for the phase.
String
Enter the threshold value for the budget.
String
Enter the hourly budget value for the phase.
String
Enter the threshold value for the hourly budget.
float
Enter the revenue budget for the phase.
String
max length : 255Enter character-type custom field values.
String
max length : 1000Enter text-type custom field values.
long
max length : 19Enter integer-type custom field values.
long
max length : 19Enter user-type custom field values using ZPUID.
double
Enter double-type custom field values.
String
Enter date-type custom field values.
String
max length : 1000Enter encrypted custom field values.
JSONArray
array size : 0-20Enter multi-select custom field values.
JSONArray
array size : 0-20Enter multiple user ZPUIDs for multi-user fields.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]";
params = Map();
params.put("name", "Authentication Module Security Audit");
params.put("start_date", "05/28/2025");
params.put("end_date", "10/28/2025");
params.put("owner_zpuid", "1752587000000097024");
params.put("flag", "internal");
params.put("status_id", "238060000975451234");
params.put("tagIds", "238060000975451234,238060000975451234");
params.put("budget", "98420000");
params.put("threshold", "250000");
params.put("hourly_budget", "9895000");
params.put("hourly_budget_threshold", "250000");
params.put("revenue_budget", "1023000");
params.put("udf_char[0-9]{1,3}", "Critical security vulnerability identified in the user authentication module affecting session token integrity.");
params.put("udf_text[0-9]{1,2}", "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("udf_long[0-9]{1,2}", "123987542233");
params.put("udf_user[0-9]{1,2}", "139655000000057003");
params.put("udf_double[0-9]{1,2}", "123.445");
params.put("udf_date[0-9]{1,2}", "23/09/2024");
params.put("udf_encrypt([1-9]|10)", "Mh@2024#SecAudit");
params.put("udf_multi[0-9]{1,2}", ["issue","bug","security","needfix"]);
params.put("udf_multiuser[0-9]{1,2}", ["139655000000057003","139655000000057004","139655000000057005"]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]');
const payload = JSON.stringify({"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")
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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
request.Content = new StringContent(
@"{""name"":""Authentication Module Security Audit"",""start_date"":""05/28/2025"",""end_date"":""10/28/2025"",""owner_zpuid"":""1752587000000097024"",""flag"":""internal"",""status_id"":""238060000975451234"",""tagIds"":""238060000975451234,238060000975451234"",""budget"":""98420000"",""threshold"":""250000"",""hourly_budget"":""9895000"",""hourly_budget_threshold"":""250000"",""revenue_budget"":""1023000"",""udf_char[0-9]{1,3}"":""Critical security vulnerability identified in the user authentication module affecting session token integrity."",""udf_text[0-9]{1,2}"":""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."",""udf_long[0-9]{1,2}"":""123987542233"",""udf_user[0-9]{1,2}"":""139655000000057003"",""udf_double[0-9]{1,2}"":""123.445"",""udf_date[0-9]{1,2}"":""23/09/2024"",""udf_encrypt([1-9]|10)"":""Mh@2024#SecAudit"",""udf_multi[0-9]{1,2}"":[""issue"",""bug"",""security"",""needfix""],""udf_multiuser[0-9]{1,2}"":[""139655000000057003"",""139655000000057004"",""139655000000057005""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
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 Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05\/28\/2025\",\"end_date\":\"10\/28\/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23\/09\/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Authentication Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")
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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"];
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 Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]" 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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}|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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Authentication Module Security Audit\",\"start_date\":\"05/28/2025\",\"end_date\":\"10/28/2025\",\"owner_zpuid\":\"1752587000000097024\",\"flag\":\"internal\",\"status_id\":\"238060000975451234\",\"tagIds\":\"238060000975451234,238060000975451234\",\"budget\":\"98420000\",\"threshold\":\"250000\",\"hourly_budget\":\"9895000\",\"hourly_budget_threshold\":\"250000\",\"revenue_budget\":\"1023000\",\"udf_char[0-9]{1,3}\":\"Critical security vulnerability identified in the user authentication module affecting session token integrity.\",\"udf_text[0-9]{1,2}\":\"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.\",\"udf_long[0-9]{1,2}\":\"123987542233\",\"udf_user[0-9]{1,2}\":\"139655000000057003\",\"udf_double[0-9]{1,2}\":\"123.445\",\"udf_date[0-9]{1,2}\":\"23/09/2024\",\"udf_encrypt([1-9]|10)\":\"Mh@2024#SecAudit\",\"udf_multi[0-9]{1,2}\":[\"issue\",\"bug\",\"security\",\"needfix\"],\"udf_multiuser[0-9]{1,2}\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")!
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 Module Security Audit","start_date":"05/28/2025","end_date":"10/28/2025","owner_zpuid":"1752587000000097024","flag":"internal","status_id":"238060000975451234","tagIds":"238060000975451234,238060000975451234","budget":"98420000","threshold":"250000","hourly_budget":"9895000","hourly_budget_threshold":"250000","revenue_budget":"1023000","udf_char[0-9]{1,3}":"Critical security vulnerability identified in the user authentication module affecting session token integrity.","udf_text[0-9]{1,2}":"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.","udf_long[0-9]{1,2}":"123987542233","udf_user[0-9]{1,2}":"139655000000057003","udf_double[0-9]{1,2}":"123.445","udf_date[0-9]{1,2}":"23/09/2024","udf_encrypt([1-9]|10)":"Mh@2024#SecAudit","udf_multi[0-9]{1,2}":["issue","bug","security","needfix"],"udf_multiuser[0-9]{1,2}":["139655000000057003","139655000000057004","139655000000057005"]}
""".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
Sample Response
Remove a phase from a project
OAuth Scope:
ZohoProjects.milestones.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]")!
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
Move a phase from one project to another.
OAuth Scope:
ZohoProjects.milestones.UPDATE
Parameter
long
Enter the ID of the project to which the phase should be moved.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"to_project":"23806000097545166"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move";
params = Map();
params.put("to_project", "23806000097545166");
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move');
const payload = JSON.stringify({"to_project":"23806000097545166"});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move")
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 = '{"to_project":"23806000097545166"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"to_project":"23806000097545166"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"to_project":"23806000097545166"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"to_project\":\"23806000097545166\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move");
request.Content = new StringContent(
@"{""to_project"":""23806000097545166""}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move");
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, "{\"to_project\":\"23806000097545166\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"to_project\":\"23806000097545166\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"to_project\":\"23806000097545166\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"to_project":"23806000097545166"}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"to_project\":\"23806000097545166\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"to_project":"23806000097545166"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"to_project":"23806000097545166"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move")
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("""{"to_project":"23806000097545166"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move"];
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 = [@"{\"to_project\":\"23806000097545166\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/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":"23806000097545166"}|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 = @'
{"to_project":"23806000097545166"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"to_project\":\"23806000097545166\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/move")!
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 = """
{"to_project":"23806000097545166"}
""".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
Sample Response
Clone a phase within a project. Use this API to duplicate phase details and configuration.
OAuth Scope:
ZohoProjects.milestones.CREATE
Parameter
long
requiredEnter the ID of the destination project where the phase will be cloned.
long
requiredEnter the ID of the destination phase.
String
Enter the start date for the cloned phase.
boolean
Specify whether closed tasks from the source phase should be included as open tasks in the cloned phase. Accepted values: true or false.
JSONArray
array size : >=0Specify how source task statuses are mapped to target statuses in the cloned phase.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone";
params = Map();
params.put("to_project_id", "-");
params.put("to_milestone_id", "-");
params.put("start_date", "05/28/2025");
params.put("include_closed_tasks_as_open", "-");
params.put("status_mapping", [{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone');
const payload = JSON.stringify({"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone")
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 = '{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"to_project_id\":\"-\",\"to_milestone_id\":\"-\",\"start_date\":\"05/28/2025\",\"include_closed_tasks_as_open\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Authentication Module Security Audit\",\"color\":\"-\",\"type\":\"Task\"}}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone");
request.Content = new StringContent(
@"{""to_project_id"":""-"",""to_milestone_id"":""-"",""start_date"":""05/28/2025"",""include_closed_tasks_as_open"":""-"",""status_mapping"":[{""old_status"":{""id"":""4000000062001""},""new_status"":{""id"":""4000000062001"",""name"":""Authentication Module Security Audit"",""color"":""-"",""type"":""Task""}}]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone");
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, "{\"to_project_id\":\"-\",\"to_milestone_id\":\"-\",\"start_date\":\"05/28/2025\",\"include_closed_tasks_as_open\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Authentication Module Security Audit\",\"color\":\"-\",\"type\":\"Task\"}}]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"to_project_id\":\"-\",\"to_milestone_id\":\"-\",\"start_date\":\"05/28/2025\",\"include_closed_tasks_as_open\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Authentication Module Security Audit\",\"color\":\"-\",\"type\":\"Task\"}}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"to_project_id\":\"-\",\"to_milestone_id\":\"-\",\"start_date\":\"05/28/2025\",\"include_closed_tasks_as_open\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Authentication Module Security Audit\",\"color\":\"-\",\"type\":\"Task\"}}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"to_project_id\":\"-\",\"to_milestone_id\":\"-\",\"start_date\":\"05\/28\/2025\",\"include_closed_tasks_as_open\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Authentication Module Security Audit\",\"color\":\"-\",\"type\":\"Task\"}}]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone")
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("""{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone"];
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 = [@"{\"to_project_id\":\"-\",\"to_milestone_id\":\"-\",\"start_date\":\"05/28/2025\",\"include_closed_tasks_as_open\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Authentication Module Security Audit\",\"color\":\"-\",\"type\":\"Task\"}}]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone" 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_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}|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 = @'
{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"to_project_id\":\"-\",\"to_milestone_id\":\"-\",\"start_date\":\"05/28/2025\",\"include_closed_tasks_as_open\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Authentication Module Security Audit\",\"color\":\"-\",\"type\":\"Task\"}}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/clone")!
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 = """
{"to_project_id":"-","to_milestone_id":"-","start_date":"05/28/2025","include_closed_tasks_as_open":"-","status_mapping":[{"old_status":{"id":"4000000062001"},"new_status":{"id":"4000000062001","name":"Authentication Module Security Audit","color":"-","type":"Task"}}]}
""".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
Sample Response
Retrieve activities performed on a phase.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
int
Enter the page number.
int
Enter the number of records to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities")
params = {
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities"
params = {
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities?page=%s&per_page=%s", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/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);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities" "?page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities?page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities';
const params = new URLSearchParams({
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities?page=%@&per_page=%@", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities"
params <- list(
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/activities")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the status transition history of a phase.
OAuth Scope:
ZohoProjects.milestones.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/status-timeline"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/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()
Sample Response
This module covers Phase follower-related operations within Zoho Projects. Use this API to retrieve, add, or remove followers for Phases.
Retrieve followers of a phase.
OAuth Scope:
ZohoProjects.milestones.READ
Query Parameter
int
requiredEnter the page number.
int
requiredEnter the number of entries to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers")
params = {
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers"
params = {
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers?page=%s&per_page=%s", enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers" "?page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers?page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers';
const params = new URLSearchParams({
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers?page=%@&per_page=%@", encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers"
params <- list(
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/followers")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Add followers to a phase.
OAuth Scope:
ZohoProjects.milestones.CREATE
Parameter
JSONArray
requiredmax length : 3000
array size : 0-100
Enter the ZPUIDs of users to follow the phase.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"followers":["32000000002471"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow";
params = Map();
params.put("followers", ["32000000002471"]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow');
const payload = JSON.stringify({"followers":["32000000002471"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow")
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 = '{"followers":["32000000002471"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"followers":["32000000002471"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"followers":["32000000002471"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"followers\":[\"32000000002471\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow");
request.Content = new StringContent(
@"{""followers"":[""32000000002471""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow");
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, "{\"followers\":[\"32000000002471\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"followers\":[\"32000000002471\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"followers\":[\"32000000002471\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"followers":["32000000002471"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"followers\":[\"32000000002471\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"followers":["32000000002471"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"followers":["32000000002471"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow")
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("""{"followers":["32000000002471"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow"];
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 = [@"{\"followers\":[\"32000000002471\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow" 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|{"followers":["32000000002471"]}|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 = @'
{"followers":["32000000002471"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"followers\":[\"32000000002471\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/follow")!
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 = """
{"followers":["32000000002471"]}
""".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
Sample Response
Remove followers from a phase
OAuth Scope:
ZohoProjects.milestones.DELETE
Parameter
JSONArray
requiredmax length : 3000
array size : 0-100
Enter the ZPUID of the users.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"followers":["32000000002471"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow";
params = Map();
params.put("followers", ["32000000002471"]);
response = invokeUrl
[
url: url
type: DELETE
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow');
const payload = JSON.stringify({"followers":["32000000002471"]});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"followers":["32000000002471"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '{"followers":["32000000002471"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"followers":["32000000002471"]}'
response = requests.delete(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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"followers\":[\"32000000002471\"]}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow");
request.Content = new StringContent(
@"{""followers"":[""32000000002471""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"followers\":[\"32000000002471\"]}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"followers\":[\"32000000002471\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"followers\":[\"32000000002471\"]}")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow", 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))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"followers":["32000000002471"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"followers":["32000000002471"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"followers":["32000000002471"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"followers":["32000000002471"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"followers\":[\"32000000002471\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow" 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|{"followers":["32000000002471"]}|json} in
Lwt_main.run (
Client.delete ~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 = @'
{"followers":["32000000002471"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"followers\":[\"32000000002471\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/unfollow")!
var request = URLRequest(url: url)
request.httpMethod = "DELETE"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"followers":["32000000002471"]}
""".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
Sample Response
This module covers Phase comment-related operations within Zoho Projects. Use this API to add, update, retrieve, or delete comments on Phases.
Retrieve comments associated with a phase.
OAuth Scope:
ZohoProjects.milestones.READ
Query Parameter
String
Specify the sort order of comments. Accepted values: ascending or descending.
int
Enter the page number to retrieve.
int
Enter the number of comments to be displayed per page.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments?sort_order=descending&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments";
params = Map();
params.put("sort_order", "descending");
params.put("page", "1");
params.put("per_page", "10");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments');
url.searchParams.append('sort_order', 'descending');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments")
params = {
"sort_order" => "descending",
"page" => "1",
"per_page" => "10"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'sort_order' => 'descending',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments"
params = {
"sort_order": "descending",
"page": "1",
"per_page": "10"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_sort_order = curl_easy_escape(curl, "descending", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments?sort_order=%s&page=%s&per_page=%s", enc_sort_order, enc_page, enc_per_page);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_sort_order);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["sort_order"] = "descending";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_sort_order = curl_easy_escape(curl, "descending", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments";
url += "?sort_order=" + std::string(enc_sort_order);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_sort_order);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-sort_order (java.net.URLEncoder/encode "descending" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments" "?sort_order=" enc-sort_order "&page=" enc-page "&per_page=" enc-per_page)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments", nil)
q := req.URL.Query()
q.Add("sort_order", "descending")
q.Add("page", "1")
q.Add("per_page", "10")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments?sort_order=descending&page=1&per_page=10 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments");
uriBuilder.addParameter("sort_order", "descending");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments';
const params = new URLSearchParams({
'sort_order': 'descending',
'page': '1',
'per_page': '10'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
sort_order = "descending"
page = "1"
per_page = "10"import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("sort_order", "descending")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedSort_order = [@"descending" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments?sort_order=%@&page=%@&per_page=%@", encodedSort_order, encodedPage, encodedPer_page];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_sort_order = Uri.pct_encode "descending" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments" ^ "?sort_order=" ^ enc_sort_order ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
sort_order = "descending"
page = "1"
per_page = "10"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments"
params <- list(
sort_order = "descending",
page = "1",
per_page = "10"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments")!
components.queryItems = [
URLQueryItem(name: "sort_order", value: "descending"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Add a comment to a phase
OAuth Scope:
ZohoProjects.milestones.CREATE
Parameter
String
requiredEnter the comment content.
JSONArray
max length : 7000array size : 0-100
Enter the user ZPUIDs to notify.
JSONArray
max length : 7000array size : 0-100
Enter the attachment IDs to associate. Attachments must be uploaded before use.
JSONArray
max length : 2500array size : 0-49
Enter the WorkDrive resource IDs of the files to associate. The WorkDrive resource ID is different from the attachment ID in Zoho Projects. Up to 50 IDs can be passed in a single request. To retrieve the resource ID, refer to the (WorkDrive Upload Large File API). Users without upload permission to the folder or team folder can upload files up to 20 MB only.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments";
params = Map();
params.put("content", "The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.");
params.put("notify", true);
params.put("attachment_ids", ["139655000000057003","139655000000057004","139655000000057005"]);
params.put("thirdparty_id", ["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]);
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments');
const payload = JSON.stringify({"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments")
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 = '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments");
request.Content = new StringContent(
@"{""content"":""The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off."",""notify"":true,""attachment_ids"":[""139655000000057003"",""139655000000057004"",""139655000000057005""],""thirdparty_id"":[""a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments");
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, "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments")
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("""{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments"];
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 = [@"{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments" 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|{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}|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 = @'
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments")!
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 = """
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
""".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
Sample Response
Modify the existing comment on a phase.
OAuth Scope:
ZohoProjects.milestones.UPDATE
Parameter
String
requiredEnter the comment content.
JSONArray
max length : 7000array size : 0-100
Enter the user ZPUIDs to notify.
JSONArray
max length : 7000array size : 0-100
Enter the attachment IDs to associate. Attachments must be uploaded before use.
JSONArray
max length : 2500array size : 0-49
Enter the WorkDrive resource IDs of the files to associate. The WorkDrive resource ID is different from the attachment ID in Zoho Projects. Up to 50 IDs can be passed in a single request. To retrieve the resource ID, refer to the (WorkDrive Upload Large File API). Users without upload permission to the folder or team folder can upload files up to 20 MB only.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046";
params = Map();
params.put("content", "The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.");
params.put("notify", true);
params.put("attachment_ids", ["139655000000057003","139655000000057004","139655000000057005"]);
params.put("thirdparty_id", ["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]);
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046');
const payload = JSON.stringify({"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046")
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 = '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
request.Content = new StringContent(
@"{""content"":""The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off."",""notify"":true,""attachment_ids"":[""139655000000057003"",""139655000000057004"",""139655000000057005""],""thirdparty_id"":[""a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0""]}",
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
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, "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046")
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("""{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"];
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 = [@"{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046" 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|{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}|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 = @'
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify\":true,\"attachment_ids\":[\"139655000000057003\",\"139655000000057004\",\"139655000000057005\"],\"thirdparty_id\":[\"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046")!
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 = """
{"content":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify":true,"attachment_ids":["139655000000057003","139655000000057004","139655000000057005"],"thirdparty_id":["a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"]}
""".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
Sample Response
Remove a comment from a phase.
OAuth Scope:
ZohoProjects.milestones.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/phases/[PHASEID]/comments/1752587000000097046")!
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
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.
Retrieve all issues from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.bugs.READ
Query Parameter
int
requiredEnter the page number. Example: 1
int
requiredEnter the number of issues to display per page.
String
Enter the field and direction to sort results. Accepted values: created_time, due_date, modified_time.
long
Enter the ID of a custom view to apply its saved filters and column settings.
String
Enter the IDs of specific issues to retrieve. Separate multiple IDs with commas.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/issues?page=1&per_page=10&sort_by=ASC%28created_time%29&view_id=2380600567533251&issue_ids=23806000097533216&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22status%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(created_time)");
params.put("view_id", "2380600567533251");
params.put("issue_ids", "23806000097533216");
params.put("filter", {"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/issues');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(created_time)');
url.searchParams.append('view_id', '2380600567533251');
url.searchParams.append('issue_ids', '23806000097533216');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/issues")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(created_time)",
"view_id" => "2380600567533251",
"issue_ids" => "23806000097533216",
""filter"" => "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(created_time)',
'view_id' => '2380600567533251',
'issue_ids' => '23806000097533216',
'"filter"' => '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(created_time)",
"view_id": "2380600567533251",
"issue_ids": "23806000097533216",
""filter"": "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(created_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "2380600567533251", 0);
char *enc_issue_ids = curl_easy_escape(curl, "23806000097533216", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/issues?page=%s&per_page=%s&sort_by=%s&view_id=%s&issue_ids=%s&\"filter\"=%s", enc_page, enc_per_page, enc_sort_by, enc_view_id, enc_issue_ids, enc_"filter");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_issue_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(created_time)";
query["view_id"] = "2380600567533251";
query["issue_ids"] = "23806000097533216";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/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);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(created_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "2380600567533251", 0);
char* enc_issue_ids = curl_easy_escape(curl, "23806000097533216", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&view_id=" + std::string(enc_view_id);
url += "&issue_ids=" + std::string(enc_issue_ids);
url += "&"filter"=" + std::string(enc_"filter");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_issue_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(created_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "2380600567533251" "UTF-8")
enc-issue_ids (java.net.URLEncoder/encode "23806000097533216" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/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")]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/issues", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "ASC(created_time)")
q.Add("view_id", "2380600567533251")
q.Add("issue_ids", "23806000097533216")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/issues?page=1&per_page=10&sort_by=ASC%28created_time%29&view_id=2380600567533251&issue_ids=23806000097533216&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22status%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/issues");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(created_time)");
uriBuilder.addParameter("view_id", "2380600567533251");
uriBuilder.addParameter("issue_ids", "23806000097533216");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/issues';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(created_time)',
'view_id': '2380600567533251',
'issue_ids': '23806000097533216',
'"filter"': '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
sort_by = "ASC(created_time)"
view_id = "2380600567533251"
issue_ids = "23806000097533216"
"filter" = {"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(created_time)")
urlBuilder.addQueryParameter("view_id", "2380600567533251")
urlBuilder.addQueryParameter("issue_ids", "23806000097533216")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(created_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"2380600567533251" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIssue_ids = [@"23806000097533216" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/issues?page=%@&per_page=%@&sort_by=%@&view_id=%@&issue_ids=%@&"filter"=%@", encodedPage, encodedPer_page, encodedSort_by, encodedView_id, encodedIssue_ids, encoded"filter"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_sort_by = Uri.pct_encode "ASC(created_time)" in
let enc_view_id = Uri.pct_encode "2380600567533251" in
let enc_issue_ids = Uri.pct_encode "23806000097533216" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
sort_by = "ASC(created_time)"
view_id = "2380600567533251"
issue_ids = "23806000097533216"
"filter" = "{`"criteria`":[{`"cfid`":`"23806000091055001`",`"api_name`":`"status`",`"field_name`":`"status`",`"criteria_condition`":`"is`",`"value`":[`"23806000097533111`"],`"relative_columns`":[{`"cfid`":`"23806000091055001`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/issues"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(created_time)",
view_id = "2380600567533251",
issue_ids = "23806000097533216",
"filter" = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/issues")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "ASC(created_time)"),
URLQueryItem(name: "view_id", value: "2380600567533251"),
URLQueryItem(name: "issue_ids", value: "23806000097533216"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve all issues from a project. Use this API to list issues within a specific project.
OAuth Scope:
ZohoProjects.bugs.READ
Query Parameter
int
requiredEnter the page number. Example: 1
int
requiredEnter the number of issues to display per page.
String
Enter the field and direction to sort results. Accepted values: created_time, due_date, modified_time.
long
Enter the ID of a custom view to apply its saved filters and column settings.
String
Enter the IDs of specific issues to retrieve.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues?page=1&per_page=10&sort_by=ASC%28created_time%29&view_id=2380600567533251&issue_ids=23806000097533216&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22status%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(created_time)");
params.put("view_id", "2380600567533251");
params.put("issue_ids", "23806000097533216");
params.put("filter", {"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(created_time)');
url.searchParams.append('view_id', '2380600567533251');
url.searchParams.append('issue_ids', '23806000097533216');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(created_time)",
"view_id" => "2380600567533251",
"issue_ids" => "23806000097533216",
""filter"" => "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(created_time)',
'view_id' => '2380600567533251',
'issue_ids' => '23806000097533216',
'"filter"' => '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(created_time)",
"view_id": "2380600567533251",
"issue_ids": "23806000097533216",
""filter"": "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(created_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "2380600567533251", 0);
char *enc_issue_ids = curl_easy_escape(curl, "23806000097533216", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues?page=%s&per_page=%s&sort_by=%s&view_id=%s&issue_ids=%s&\"filter\"=%s", enc_page, enc_per_page, enc_sort_by, enc_view_id, enc_issue_ids, enc_"filter");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_issue_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(created_time)";
query["view_id"] = "2380600567533251";
query["issue_ids"] = "23806000097533216";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(created_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "2380600567533251", 0);
char* enc_issue_ids = curl_easy_escape(curl, "23806000097533216", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&view_id=" + std::string(enc_view_id);
url += "&issue_ids=" + std::string(enc_issue_ids);
url += "&"filter"=" + std::string(enc_"filter");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_issue_ids);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(created_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "2380600567533251" "UTF-8")
enc-issue_ids (java.net.URLEncoder/encode "23806000097533216" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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")]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "ASC(created_time)")
q.Add("view_id", "2380600567533251")
q.Add("issue_ids", "23806000097533216")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues?page=1&per_page=10&sort_by=ASC%28created_time%29&view_id=2380600567533251&issue_ids=23806000097533216&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22status%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(created_time)");
uriBuilder.addParameter("view_id", "2380600567533251");
uriBuilder.addParameter("issue_ids", "23806000097533216");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(created_time)',
'view_id': '2380600567533251',
'issue_ids': '23806000097533216',
'"filter"': '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
sort_by = "ASC(created_time)"
view_id = "2380600567533251"
issue_ids = "23806000097533216"
"filter" = {"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(created_time)")
urlBuilder.addQueryParameter("view_id", "2380600567533251")
urlBuilder.addQueryParameter("issue_ids", "23806000097533216")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(created_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"2380600567533251" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIssue_ids = [@"23806000097533216" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues?page=%@&per_page=%@&sort_by=%@&view_id=%@&issue_ids=%@&"filter"=%@", encodedPage, encodedPer_page, encodedSort_by, encodedView_id, encodedIssue_ids, encoded"filter"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_sort_by = Uri.pct_encode "ASC(created_time)" in
let enc_view_id = Uri.pct_encode "2380600567533251" in
let enc_issue_ids = Uri.pct_encode "23806000097533216" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
sort_by = "ASC(created_time)"
view_id = "2380600567533251"
issue_ids = "23806000097533216"
"filter" = "{`"criteria`":[{`"cfid`":`"23806000091055001`",`"api_name`":`"status`",`"field_name`":`"status`",`"criteria_condition`":`"is`",`"value`":[`"23806000097533111`"],`"relative_columns`":[{`"cfid`":`"23806000091055001`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(created_time)",
view_id = "2380600567533251",
issue_ids = "23806000097533216",
"filter" = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "ASC(created_time)"),
URLQueryItem(name: "view_id", value: "2380600567533251"),
URLQueryItem(name: "issue_ids", value: "23806000097533216"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve details of an issue in a project. Use this API to fetch complete information of an issue using its ID.
OAuth Scope:
ZohoProjects.bugs.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")!
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
Create an issue in a project. Use this API to add a new issue with required and optional fields.
OAuth Scope:
ZohoProjects.bugs.CREATE
Parameter
String
requiredmax length : 65000
Enter the title of the issue.
String
Enter a detailed description of the issue.
String
max length : 100Specify the visibility of the issue. Accepted values: Internal (visible only to your team) or External (visible to external stakeholders).
JSONObject
max length : 1000Specify the team to associate with this issue.
String
Enter the due date for the issue in ISO 8601 format. Example: 2025-12-31T00:00:00+05:30
JSONObject
max length : 1000Specify the milestone in which this issue is planned to be fixed and released.
JSONObject
max length : 1000Specify the milestone in which this issue was first observed or reported.
JSONObject
max length : 1000Specify the severity level of the issue. Example: Critical, Major, or Minor.
JSONObject
max length : 1000Specify how consistently this issue can be reproduced. Example: Always, Sometimes, or Rarely.
JSONObject
max length : 1000Specify the classification or category of this issue.
JSONObject
max length : 1000Specify the module of the project that this issue is related to.
JSONArray
max length : 10000array size : 0-10
Enter the IDs of existing attachments to associate with this issue. Maximum 10 attachments allowed.
JSONArray
max length : 10000Enter the IDs of tags to label or categorize this issue.
JSONArray
max length : 10000Enter the IDs of users who should follow and receive notifications for this issue.
JSONObject
max length : 10000Configure a reminder for this issue to alert assignees or followers before or on the due date.
double
max length : 100Enter the billing rate per hour for the assignee working on this issue.
double
max length : 100Enter the internal cost per hour for the assignee working on this issue.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"rate_per_hour":"945.25","cost_rate_per_hour":"510.75"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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("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", "-");
params.put("reminder", {"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]});
params.put("rate_per_hour", "945.25");
params.put("cost_rate_per_hour", "510.75");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"rate_per_hour":"945.25","cost_rate_per_hour":"510.75"});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"rate_per_hour":"945.25","cost_rate_per_hour":"510.75"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"rate_per_hour":"945.25","cost_rate_per_hour":"510.75"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.\",\"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\":\"-\",\"reminder\":{\"type\":\"Task\",\"reminder_custom_date\":\"-\",\"days_before\":\"-\",\"time\":\"22:00\",\"notify_users\":[\"78815938\",\"78971742\"]},\"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.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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."",""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"":""-"",""reminder"":{""type"":""Task"",""reminder_custom_date"":""-"",""days_before"":""-"",""time"":""22:00"",""notify_users"":[""78815938"",""78971742""]},""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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.\",\"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\":\"-\",\"reminder\":{\"type\":\"Task\",\"reminder_custom_date\":\"-\",\"days_before\":\"-\",\"time\":\"22:00\",\"notify_users\":[\"78815938\",\"78971742\"]},\"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/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.\",\"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\":\"-\",\"reminder\":{\"type\":\"Task\",\"reminder_custom_date\":\"-\",\"days_before\":\"-\",\"time\":\"22:00\",\"notify_users\":[\"78815938\",\"78971742\"]},\"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\",\"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\":\"-\",\"reminder\":{\"type\":\"Task\",\"reminder_custom_date\":\"-\",\"days_before\":\"-\",\"time\":\"22:00\",\"notify_users\":[\"78815938\",\"78971742\"]},\"rate_per_hour\":\"945.25\",\"cost_rate_per_hour\":\"510.75\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues HTTP/1.1
Host: projectsapi.zoho.com
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","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.\",\"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\":\"-\",\"reminder\":{\"type\":\"Task\",\"reminder_custom_date\":\"-\",\"days_before\":\"-\",\"time\":\"22:00\",\"notify_users\":[\"78815938\",\"78971742\"]},\"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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"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","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"rate_per_hour":"945.25","cost_rate_per_hour":"510.75"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.\",\"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\":\"-\",\"reminder\":{\"type\":\"Task\",\"reminder_custom_date\":\"-\",\"days_before\":\"-\",\"time\":\"22:00\",\"notify_users\":[\"78815938\",\"78971742\"]},\"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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"rate_per_hour":"945.25","cost_rate_per_hour":"510.75"}|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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"rate_per_hour":"945.25","cost_rate_per_hour":"510.75"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.\",\"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\":\"-\",\"reminder\":{\"type\":\"Task\",\"reminder_custom_date\":\"-\",\"days_before\":\"-\",\"time\":\"22:00\",\"notify_users\":[\"78815938\",\"78971742\"]},\"rate_per_hour\":\"945.25\",\"cost_rate_per_hour\":\"510.75\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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.","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":"-","reminder":{"type":"Task","reminder_custom_date":"-","days_before":"-","time":"22:00","notify_users":["78815938","78971742"]},"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
Sample Response
Possible Errors
INVALID_OAUTHTOKEN HTTP 401
Modify an issue in a project. Use this API to modify issue details such as status, assignee, or fields.
OAuth Scope:
ZohoProjects.bugs.UPDATE
Parameter
String
max length : 65000Enter the updated title of the issue.
String
Enter the updated description of the issue.
String
max length : 100Specify the updated visibility of the issue. Accepted values: Internal (visible only to your team) or External (visible to external stakeholders).
JSONObject
max length : 1000Specify the updated team association for this issue.
String
Enter the updated due date for the issue in ISO 8601 format. Example: 2025-12-31T00:00:00+05:30
JSONArray
max length : 10000Update the tags associated with this issue. Use add to attach new tags or remove to detach existing ones.
JSONObject
max length : 1000Specify the updated release milestone for this issue.
JSONObject
max length : 1000Specify the updated affected milestone for this issue.
JSONObject
max length : 1000Specify the updated severity level of the issue.
JSONObject
max length : 1000Specify how consistently this issue can be reproduced.
JSONObject
max length : 1000Specify the updated classification or category of this issue.
JSONObject
max length : 1000Specify the updated module, this issue belongs to.
double
max length : 100Enter the updated billing rate per hour for the assignee working on this issue.
double
max length : 100Enter the cost per hour for the assignee working on this issue.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233' \
-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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233');
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233";
$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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
{: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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233 HTTP/1.1
Host: projectsapi.zoho.com
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233';
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"];
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")!
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
Sample Response
Remove an issue from a project. Use this API to permanently remove an issue using its ID.
OAuth Scope:
ZohoProjects.bugs.DELETE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233";
response = invokeUrl
[
url: url
type: DELETE
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.delete(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
DELETE https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "DELETE"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233")!
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()
Retrieve the description of an issue from a project.
OAuth Scope:
ZohoProjects.bugs.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/description"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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
Move an issue to another project. Use this API to move an issue by specifying the destination project ID.
OAuth Scope:
ZohoProjects.bugs.CREATE
Parameter
long
requiredEnter the ID of the destination project to move this issue to.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"to_project":"23806000097533251"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move";
params = Map();
params.put("to_project", "23806000097533251");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move');
const payload = JSON.stringify({"to_project":"23806000097533251"});
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move")
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 = '{"to_project":"23806000097533251"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"to_project":"23806000097533251"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"to_project":"23806000097533251"}'
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"to_project\":\"23806000097533251\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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);
#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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move");
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, "{\"to_project\":\"23806000097533251\"}");
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"to_project\":\"23806000097533251\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"to_project\":\"23806000097533251\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move", 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"to_project":"23806000097533251"}
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"to_project\":\"23806000097533251\"}";
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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"to_project":"23806000097533251"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"to_project":"23806000097533251"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move")
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("""{"to_project":"23806000097533251"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move"];
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 = [@"{\"to_project\":\"23806000097533251\"}" 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://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"to_project":"23806000097533251"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"to_project\":\"23806000097533251\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/move")!
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 = """
{"to_project":"23806000097533251"}
""".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
Sample Response
Clone an issue in a project. Use this API to create a duplicate of an existing issue.
OAuth Scope:
ZohoProjects.bugs.CREATE
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone";
response = invokeUrl
[
url: url
type: POST
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.post(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/clone"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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()
Sample Response
Retrieve activities performed on issues in a project.
OAuth Scope:
ZohoProjects.bugs.READ
Query Parameter
int
Enter the page number. Example: 1
int
Specify the number of entries to be displayed per page.
String
Enter the sort order for activity entries. Accepted values: DESC or ASC.
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- JSON
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities?page=1&per_page=10&sort_by=ASC%28created_time%29&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22status%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(created_time)");
params.put("filter", {"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"});
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(created_time)');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(created_time)",
""filter"" => "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(created_time)',
'"filter"' => '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(created_time)",
""filter"": "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(created_time)", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities?page=%s&per_page=%s&sort_by=%s&\"filter\"=%s", enc_page, enc_per_page, enc_sort_by, enc_"filter");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(created_time)";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(created_time)", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&"filter"=" + std::string(enc_"filter");
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_"filter");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(created_time)" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&"filter"=" enc-"filter")]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "ASC(created_time)")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities?page=1&per_page=10&sort_by=ASC%28created_time%29&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%22%2C%22api_name%22%3A%22status%22%2C%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%2223806000097533111%22%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%2223806000091055001%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 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(created_time)");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(created_time)',
'"filter"': '{"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
page = "1"
per_page = "10"
sort_by = "ASC(created_time)"
"filter" = {"criteria":[{"cfid":"23806000091055001","api_name":"status","field_name":"status","criteria_condition":"is","value":["23806000097533111"],"relative_columns":[{"cfid":"23806000091055001","offset":"1","unit":"days","prior":"before"}]}],"pattern":"1"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val urlBuilder = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(created_time)")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(created_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities?page=%@&per_page=%@&sort_by=%@&"filter"=%@", encodedPage, encodedPer_page, encodedSort_by, encoded"filter"];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_sort_by = Uri.pct_encode "ASC(created_time)" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
page = "1"
per_page = "10"
sort_by = "ASC(created_time)"
"filter" = "{`"criteria`":[{`"cfid`":`"23806000091055001`",`"api_name`":`"status`",`"field_name`":`"status`",`"criteria_condition`":`"is`",`"value`":[`"23806000097533111`"],`"relative_columns`":[{`"cfid`":`"23806000091055001`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`"}]}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(created_time)",
"filter" = "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/activities")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "ASC(created_time)"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"23806000091055001\",\"api_name\":\"status\",\"field_name\":\"status\",\"criteria_condition\":\"is\",\"value\":[\"23806000097533111\"],\"relative_columns\":[{\"cfid\":\"23806000091055001\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\"}]}],\"pattern\":\"1\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the status transitions history of an issue.
OAuth Scope:
ZohoProjects.bugs.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/statustransition"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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()
Sample Response
Retrieve the status transitions history of an issue.
OAuth Scope:
ZohoProjects.bugs.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift
curl -X GET \
'https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline";
response = invokeUrl
[
url: url
type: GET
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Get, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline");
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/get "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline", nil)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/status-timeline"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3.1/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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()
Sample Response
This module covers issue linking operations in Zoho Projects. Use this API to retrieve linked issues, link issues in bulk, change link types, or unlink issues.
Retrieve all linked issues of an issue.
OAuth Scope:
ZohoProjects.bugs.READ
Request Example
- cURL
- Deluge
- Node.js
- Ruby
- PHP
- Python
- C
- C#
- C++
- Clojure
- Go
- HTTP
- Java
- JS Fetch
- Kotlin
- Objective-C
- OCaml
- PowerShell
- R
- Swift