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
To ensure fair usage and maintain optimal performance for all users, Zoho Projects APIs are governed by rate limits.
- Each API can be invoked up to 200 times within a 2-minute window.
- The limit is applied per API endpoint.
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
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
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%22status%22%2C%22criteria_condition%22%3A%22all_open%22%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 (all_open, 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 (
all_open,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.
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"].
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 |
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"].
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) |
| Direct reports of | direct_reports_of | Records assigned to direct reports of the given user |
| Subordinates of | subordinates_of | Records assigned to any subordinate of the given user |
Presets (no value array needed):
| Condition | API Value | What it matches |
|---|---|---|
| Deactivated users | deactivated_users | Records assigned to deactivated users |
| Deleted users | deleted_users | Records assigned to deleted users |
| Is team lead only | is_team_lead_only | Records assigned to team leads only |
| Pending | pending | Records with pending user assignments |
| Accepted | accepted | Records with accepted user assignments |
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.
Text: Contains
Multi-Value IS
Date: Between
Numeric: Greater Than
Date Preset: Next 7 Days
Overdue + Assigned to Me
User: Subordinates
Empty Field Check
Unscheduled Date Field
The Zoho Projects API uses the OAuth2.0 protocol for authentication. It is an industry-standard protocol specification that enables third-party applications (clients) to gain delegated access to protected resources in Zoho via an API.
- Clients are not required to support password authentication or store user credentials.
- Clients gain delegated access, i.e., access only to resources authenticated by the user.
- Users can revoke the client's delegated access anytime.
- OAuth2.0 access tokens expire after a set time. If the client faces a security breach, user data will be compromised only until the access token is valid.
The following are some terms you need to know before you start using the Zoho Projects APIs.
Protected resources
The Zoho Projects resources, such as Projects, Tasks, Forum, etc.
Resource server
The Zoho Projects server that hosts protected resources.
Resource owner
Any end-user of your account, who can grant access to the protected resources.
Client
An application that sends requests to the resource server to access the protected resources on behalf of the end-user.
Client ID
The consumer key generated from the connected application.
Client Secret
The consumer secret generated from the connected application.
Authentication server
Authorization server provides the necessary credentials (such as Access and Refresh tokens) to the client. In this case, it will be the Zoho Projects authorization server.
Authentication code
The authorization server creates a temporary token and sends it to the client via the browser. The client will send this code to the authorization server to obtain access and refresh tokens.
Access Token
A token that is sent to the resource server to access the protected resources of the user. The Access token provides secure and temporary access to Zoho Projects APIs and is used by the applications to make requests to the connected app. Each access token will be valid only for an hour and can be used only for the set of operations that are described in the scope.
Access Token
A token that can be used to obtain new access tokens. This token has an unlimited lifetime until it is revoked by the end-user.
Zoho Projects APIs use selected scopes, which control the type of resource that the client application can access. Tokens are usually created with various scopes to ensure improved security. For example, you can generate a scope to create or view a projects, or to view tasks and so on. Scopes contain three parameters service name, scope name, and operation type. The format to define a scope is scope=service_name.scope_name.operation_type
Example
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoProjects.projects.ALL
Additionally, you can set specific permissions, like read, create, update or delete, for each module.
The above scope gives the user access to only the portal and projects modules from the client Zoho Projects account.
Before you get started with authorization and make any calls using the Zoho Projects APIs, you need to register your application with Zoho Projects.
To register,
- Go to Zoho Developer Console.
-
Choose a client type:
- Java Script: Applications that run exclusively on a browser and are independent of a web server.
- Web Based: Applications that are clients running on a dedicated HTTP server.
- Mobile: Applications that are installed on smart phones and tablets.
- Non-browser Mobile Applications: Applications for devices without browser provisioning such as smart TVs and printers.
- Self Client: Stand-alone applications that perform only back-end jobs (without any manual intervention) like data sync.
For more details, refer to OAuth Overview.
-
Enter the following details:
- Client Name: The name of your application you want to register with Zoho.
- Homepage URL: The URL of your web page.
- Authorized Redirect URIs: A valid URL of your application to which Zoho Accounts redirects you with a grant token(code) after successful authentication.
- Click CREATE.
-
You will receive the following credentials:
- Client ID: The consumer key generated from the connected app.
- Client Secret: The consumer secret generated from the connected app.
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoProjects.portals.ALL,ZohoProjects.projects.ALL&client_id={client_id}&response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}
To use the Zoho Projects APIs, the users must authenticate the application to make API calls on their behalf with an access token.
The access token, in return, must be obtained from a grant token (authorization code). The Zoho Projects APIs use the authorization code grant type to provide access to protected resources.
There are two ways in which you can generate the grant token based on the client type.
Web-based applications are chosen when your application is used by multiple users and requires user intervention during authorization. For this client type, you must use redirection-based code generation. In this authorization flow,
- The user clicks the Login with Zoho button on any third-party web-based application.
- The application redirects the user to the Zoho Login page, and the user enters the Zoho credentials.
-
The web application redirects the user to the Zoho OAuth server with the required scope in the Accounts URL:Note
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoProjects.portals.ALL&client_id={client_id}&response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}
As you can see, the request URL has the parameters "scope", "client_id", "response_type", "access_type", and "redirect_uri". Also, the page displays the chosen organization and the data (scope) that the application wants to access.Parametersscope
Data that your application wants to access. Refer to Scopes for more details.
client_id
Client ID(consumer key) that you obtained during client registration.
redirect_uri
Callback URL that you specified during client registration.
response_type
Enter code.
access_type
Enter access_type as online or offline . If you want to generate the refresh token, set this value as offline.
- Based on the user's login details, the system automatically detects the user's domain and uses the domain-specific authentication URL to obtain the organization-specific grant token (code).
-
When the user clicks Accept: The application gets authorized. The organization-specific grant token is sent as a parameter in the redirect_uri.
-
A back-end script from your end needs to store the following details from the above URL.
- code={grant_token} - This is used to generate access and refresh tokens.
- location={domain} - This tells you the domain of the user from which you have to make API calls.
- accounts-server={accounts_URL} - This is your accounts URL which you have to use to generate access and refresh tokens.
- The application exchanges the authorization code for an access token.
- When the user clicks Reject: The browser redirects to the redirect URI with the parameter error=access_denied, and your application is denied access to the user's data in Zoho Projects.
- The grant token is valid only for two minutes. Refer to the Token Validity page for more details.
- The authorization URL has the scope for Users. You can change the scope as per your requirement.
Possible Errors
ERROR_invalid_response_type
Resolution: The value of the "response_type" key is not "code". Update the value as "code".
(or)
You have not passed the mandatory keys in the request. Pass all the mandatory keys in the request to generate the organization-specific grant token.
ERROR_invalid_client
Resolution: The client ID is wrong or empty. Pass the right client ID. You can check your client ID from the developer console.
ERROR_invalid_redirect_uri
Resolution: The redirect URI value passed, and the one registered in the developer console mismatches. Pass the right redirect URI.
ERROR_invalid_scope
Resolution: The scope is invalid. Pass valid scopes. You can refer to the list of scopes here.
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.
OAuth2.0 requests are usually authenticated with an access token, which is passed as bearer token. To use this access token, you need to construct a normal HTTP request and include it in an Authorization header along with the value of Bearer.
- You must use your domain-specific Zoho Accounts URL to generate access and refresh tokens. The following are the various domains and their corresponding accounts URLs.
- For CA: https://accounts.zohocloud.ca
- For US: https://accounts.zoho.com
- For AU: https://accounts.zoho.com.au
- For JP: https://accounts.zoho.jp
- For UK: https://accounts.zoho.uk
- For IN: https://accounts.zoho.in
- For CN: https://accounts.zoho.com.cn
- For EU: https://accounts.zoho.eu
- For SA: https://accounts.zoho.sa
-
Make a POST request with the following URL. Replace
{accounts_url}with your domain-specific Zoho accounts URL when you make the request.
{accounts_url}/oauth/v2/token
Note: For security reasons, pass the below parameters in the body of your request as form-data.
| Parameter | Description |
|---|---|
| code | Authorization code obtained after generating the grant token. |
| client_id | Client ID obtained after registering the client. |
| client_secret | Client secret obtained after registering the client. |
| grant_type | "authorization_code" |
| redirect_uri | Redirect URI mentioned while registering the client. |
This completes the authentication. Once your app receives the access token, send the token in your HTTP authorization header to Zoho Projects API with the value "Bearer {access_token}" for each endpoint (for each request).
Possible Errors
invalid_client
Resolution: You have passed an invalid Client ID or secret. Specify the correct client ID and secret
(or)
There is a domain mismatch. You have registered the client and generated the grant token in a certain domain (US), but generating the tokens from a different domain (EU). Ensure that you generate the grant, access, and refresh tokens from the same domain using the same domain URL or Enable Multi-DC for your client to generate tokens from any domain.
(or)
You have passed the wrong client secret when multi-DC is enabled. Each DC holds a unique client secret. Ensure to pass the right client secret for that DC.
invalid_code
Resolution: The grant token has expired. The grant token is valid only for one minute in the redirection-based flow. Generate the access and refresh tokens before the grant token expires.
(or)
You have already used the grant token. You can use the grant token only once.
(or)
The refresh token to generate a new access token is wrong or revoked. Specify the correct refresh token value while refreshing an access token.
invalid_redirect_uri
Resolution: The redirect URI in the request mismatches the one registered in the developer console. Specify the correct redirect URI in the request.
Query Params
&grant_type=authorization_code
&client_id=1000.R2Z0WWxxxxxxxxxxxxx
&client_secret=39c689de68c712fa5f1bxxxxxxxxx
&redirect_uri=https://www.zylker.com/oauthgrant
Sample Response
"access_token": "1000.8d4ec8d6xxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"expires_in_sec": 3600,
"scope": "ZohoProjects.portals.ALL ZohoProjects.projects.ALL ZohoProjects.activities.READ ZohoProjects.status.READ ZohoProjects.status.CREATE ZohoProjects.milestones.ALL ZohoProjects.tasklists.ALL ZohoProjects.tasks.ALL ZohoProjects.timesheets.ALL ZohoProjects.bugs.ALL ZohoProjects.events.ALL ZohoProjects.forums.ALL ZohoProjects.users.ALL ZohoProjects.search.READ ZohoProjects.clients.ALL ZohoProjects.documents.ALL ZohoPC.files.ALL ZohoBugtracker.portals.READ ZohoBugtracker.projects.ALL ZohoBugtracker.milestones.ALL ZohoBugtracker.timesheets.ALL ZohoBugtracker.bugs.ALL ZohoBugtracker.events.ALL ZohoBugtracker.forums.ALL ZohoBugtracker.users.ALL ZohoBugtracker.search.READ ZohoBugtracker.documents.ALL ZohoBugtracker.tags.READ ZohoSheet.dataAPI.READ ZohoProjects.custom_fields.ALL",
"api_domain": "https://www.zohoapis.com",
"token_type": "Bearer",
"expires_in": 3600000
}
Access tokens expire after an hour of generation. To generate a new access token, use the refresh token you generated earlier.
- You must use your domain-specific Zoho Accounts URL to refresh your access token.
- For CA: https://accounts.zohocloud.ca
- For US: https://accounts.zoho.com
- For AU: https://accounts.zoho.com.au
- For JP: https://accounts.zoho.jp
- For UK: https://accounts.zoho.uk
- For IN: https://accounts.zoho.in
- For CN: https://accounts.zoho.com.cn
- For EU: https://accounts.zoho.eu
- For SA: https://accounts.zoho.sa
{accounts_url}/oauth/v2/token?refresh_token={refresh_token}&client_id={client_id}&client_secret={client_secret}&grant_type=refresh_token
- You must use your domain-specific Zoho Accounts URL to refresh your access token.
- We have provided with a sample test OAuth in all the examples, so that you can test any example on your own. You can replace the sample OAuth Token with your actual token to test requests from your Zoho Projects account.
- For applications with multiple organizations, the refresh tokens generated for one organization in an environment cannot be used for another organization. For instance, you cannot use the refresh token generated for an organization in the Production environment to generate access tokens for the organizations in the sandbox or developer accounts.
- For information about the validity of the tokens, refer to the Token Validity page.
Query Params
&client_id=1000.R2Z0Wxxxxxxxxxxxxxxx
&client_secret=39c689de68xxxxxxxx
&scope=ZohoProjects.projects.READ,ZohoProjects.portal.READ
&redirect_uri=https://www.zylker.com/oauthgrant
&grant_type=refresh_token
Sample Response
"access_token": "1000.a4b5e19baaf3cxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"scope": "ZohoProjects.portals.ALL ZohoProjects.projects.ALL ZohoProjects.activities.READ ZohoProjects.status.READ ZohoProjects.status.CREATE ZohoProjects.milestones.ALL ZohoProjects.tasklists.ALL ZohoProjects.tasks.ALL ZohoProjects.timesheets.ALL ZohoProjects.bugs.ALL ZohoProjects.events.ALL ZohoProjects.forums.ALL ZohoProjects.users.ALL ZohoProjects.search.READ ZohoProjects.clients.ALL ZohoProjects.documents.ALL ZohoPC.files.ALL ZohoBugtracker.portals.READ ZohoBugtracker.projects.ALL ZohoBugtracker.milestones.ALL ZohoBugtracker.timesheets.ALL ZohoBugtracker.bugs.ALL ZohoBugtracker.events.ALL ZohoBugtracker.forums.ALL ZohoBugtracker.users.ALL ZohoBugtracker.search.READ ZohoBugtracker.documents.ALL ZohoBugtracker.tags.READ ZohoSheet.dataAPI.READ ZohoProjects.custom_fields.ALL",
"token_type": "Bearer",
"expires_in": 3600
}
If you want to revoke your refresh token,
- You must use your domain-specific Zoho Accounts URL to revoke your refresh token.
- If you have multiple organizations, the refresh token that you revoke will be specific to a particular organization, and this action will not have an effect on other organizations in your application.
{accounts_url}/oauth/v2/token/revoke?token={refresh_token}
Query Params
Grant Token (Authorization code)
- Grant token is a one-time use token and valid for two minutes, by default. If you want to extend the expiry time, choose the required time from the drop-down while generating the token from the developer console (applicable only to self-clients).
- You can generate a maximum of 10 grant tokens in a span of 10 minutes per client ID.
Access Token
- Each access token is valid for one hour.
- You can generate a maximum of 10 access tokens in a span of 10 minutes.
- When you generate the 11th access token, the first created access token will be deleted.
Refresh Token
- Refresh tokens do not expire until a user revokes them.
- You can generate a maximum of 10 access tokens from a refresh token in a span of 10 minutes.
- You can generate a maximum of 20 refresh tokens in a span of 10 minutes per client ID.
- When you generate the 21st refresh token, the first created refresh token gets deleted.
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
Enter the sort criteria. Accepted values: trashed_time or 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%22cfid%22%3A%227000000007003%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22manufacturing%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/bin";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "asc(trashed_time)");
params.put("filter", {"criteria":[{"cfid":"7000000007003","criteria_condition":"contains","value":["manufacturing"]}],"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/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":[{"cfid":"7000000007003","criteria_condition":"contains","value":["manufacturing"]}],"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/bin")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "asc(trashed_time)",
"filter" => "{\"criteria\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"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(trashed_time)',
'filter' => '{"criteria":[{"cfid":"7000000007003","criteria_condition":"contains","value":["manufacturing"]}],"pattern":"1"}',
];
$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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"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(trashed_time)", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"pattern\":\"1\"}", 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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"pattern\":\"1\"}";
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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"pattern\":\"1\"}", 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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"pattern\":\"1\"}" "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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"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/bin?page=1&per_page=10&sort_by=asc%28trashed_time%29&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%227000000007003%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22manufacturing%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/bin");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "asc(trashed_time)");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"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/bin';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'asc(trashed_time)',
'filter': '{"criteria":[{"cfid":"7000000007003","criteria_condition":"contains","value":["manufacturing"]}],"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(trashed_time)"
filter = {"criteria":[{"cfid":"7000000007003","criteria_condition":"contains","value":["manufacturing"]}],"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/bin".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "asc(trashed_time)")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"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(trashed_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"pattern\":\"1\"}" 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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"pattern\":\"1\"}" 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`":[{`"cfid`":`"7000000007003`",`"criteria_condition`":`"contains`",`"value`":[`"manufacturing`"]}],`"pattern`":`"1`"}"
}
$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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"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/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\":[{\"cfid\":\"7000000007003\",\"criteria_condition\":\"contains\",\"value\":[\"manufacturing\"]}],\"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
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 custom domain configuration in Zoho Projects. Use this API to validate, retrieve, add, update status, and delete custom domain mapping for the portal.
Validate whether the specified domain can be used as a custom domain.
OAuth Scope:
ZohoProjects.portals.CREATE
Query Parameter
String
requiredEnter the custom domain name to validate.
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/custom-domain/validate?domain=projects.zylker.com' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate";
params = Map();
params.put("domain", "projects.zylker.com");
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/custom-domain/validate');
url.searchParams.append('domain', 'projects.zylker.com');
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/custom-domain/validate")
params = {
"domain" => "projects.zylker.com"
}
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 = [
'domain' => 'projects.zylker.com',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate" . "?" . 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/custom-domain/validate"
params = {
"domain": "projects.zylker.com"
}
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_domain = curl_easy_escape(curl, "projects.zylker.com", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate?domain=%s", enc_domain);
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_domain);
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["domain"] = "projects.zylker.com";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate") { 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_domain = curl_easy_escape(curl, "projects.zylker.com", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate";
url += "?domain=" + std::string(enc_domain);
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_domain);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-domain (java.net.URLEncoder/encode "projects.zylker.com" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate" "?domain=" enc-domain)]
(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/custom-domain/validate", nil)
q := req.URL.Query()
q.Add("domain", "projects.zylker.com")
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/custom-domain/validate?domain=projects.zylker.com 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/custom-domain/validate");
uriBuilder.addParameter("domain", "projects.zylker.com");
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/custom-domain/validate';
const params = new URLSearchParams({
'domain': 'projects.zylker.com'
});
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));
domain = "projects.zylker.com"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/custom-domain/validate".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("domain", "projects.zylker.com")
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 *encodedDomain = [@"projects.zylker.com" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate?domain=%@", encodedDomain];
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_domain = Uri.pct_encode "projects.zylker.com" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate" ^ "?domain=" ^ enc_domain) 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 = @{
domain = "projects.zylker.com"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/validate"
params <- list(
domain = "projects.zylker.com"
)
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/custom-domain/validate")!
components.queryItems = [
URLQueryItem(name: "domain", value: "projects.zylker.com")
]
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 the custom domain.
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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain";
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/custom-domain');
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/custom-domain")
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/custom-domain";
$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/custom-domain"
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/custom-domain");
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/custom-domain");
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/custom-domain");
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/custom-domain"
{: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/custom-domain", 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/custom-domain 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/custom-domain");
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/custom-domain';
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/custom-domain")
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/custom-domain"];
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/custom-domain" 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/custom-domain" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain"
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/custom-domain")!
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 the custom domain configuration to the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredEnter the custom domain name. The domain record is stored and the SSL certificate availability is checked. If SSL is not available, an SSL certificate is purchased automatically. SSL certificate provisioning may take up to 7 days.
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/custom-domain' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'domain = "projects.zylker.com"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain";
params = Map();
params.put("domain", "projects.zylker.com");
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/custom-domain');
url.searchParams.append('domain', 'projects.zylker.com');
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/custom-domain")
params = {
"domain" => "projects.zylker.com"
}
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 = [
'domain' => 'projects.zylker.com',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain" . "?" . 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/custom-domain"
params = {
"domain": "projects.zylker.com"
}
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_domain = curl_easy_escape(curl, "projects.zylker.com", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain?domain=%s", enc_domain);
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_domain);
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["domain"] = "projects.zylker.com";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain") { 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_domain = curl_easy_escape(curl, "projects.zylker.com", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain";
url += "?domain=" + std::string(enc_domain);
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_domain);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-domain (java.net.URLEncoder/encode "projects.zylker.com" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain" "?domain=" enc-domain)]
(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/custom-domain", nil)
q := req.URL.Query()
q.Add("domain", "projects.zylker.com")
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/custom-domain?domain=projects.zylker.com 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/custom-domain");
uriBuilder.addParameter("domain", "projects.zylker.com");
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/custom-domain';
const params = new URLSearchParams({
'domain': 'projects.zylker.com'
});
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));
domain = "projects.zylker.com"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/custom-domain".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("domain", "projects.zylker.com")
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 *encodedDomain = [@"projects.zylker.com" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain?domain=%@", encodedDomain];
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_domain = Uri.pct_encode "projects.zylker.com" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain" ^ "?domain=" ^ enc_domain) 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 = @{
domain = "projects.zylker.com"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain"
params <- list(
domain = "projects.zylker.com"
)
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/custom-domain")!
components.queryItems = [
URLQueryItem(name: "domain", value: "projects.zylker.com")
]
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
Update the custom domain status. Enable the domain after SSL verification or disable the active domain mapping. When disabled, the portal will be accessible using the default Zoho Projects domain.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
boolean
required-
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/custom-domain/status' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"is_enabled":true}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status";
params = Map();
params.put("is_enabled", true);
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/custom-domain/status');
const payload = JSON.stringify({"is_enabled":true});
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/custom-domain/status")
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 = '{"is_enabled":true}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"is_enabled":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/custom-domain/status"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"is_enabled":true}'
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/custom-domain/status");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"is_enabled\":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.Put, "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status");
request.Content = new StringContent(
@"{""is_enabled"":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/custom-domain/status");
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, "{\"is_enabled\":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/put "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"is_enabled\":true}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"is_enabled\":true}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status", 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/custom-domain/status HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"is_enabled":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/custom-domain/status");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"is_enabled\":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/custom-domain/status';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"is_enabled":true})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"is_enabled":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/custom-domain/status")
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("""{"is_enabled":true}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status"];
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 = [@"{\"is_enabled\":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/custom-domain/status" 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_enabled":true}|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 = @'
{"is_enabled":true}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"is_enabled\":true}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain/status")!
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 = """
{"is_enabled":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
Remove the custom domain configuration from the Zoho Projects portal. The portal will use the default Zoho Projects domain once removed.
OAuth Scope:
ZohoProjects.portals.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/custom-domain' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain";
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/custom-domain');
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/custom-domain")
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/custom-domain";
$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/custom-domain"
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/custom-domain");
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/custom-domain");
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/custom-domain");
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/custom-domain"
{: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/custom-domain", 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/custom-domain 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/custom-domain");
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/custom-domain';
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/custom-domain")
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/custom-domain"];
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/custom-domain" 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/custom-domain" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/custom-domain"
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/custom-domain")!
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
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 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.
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' \
-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");
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');
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"
}
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" . "?" . 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"
}
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?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") { 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";
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" "?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", 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?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");
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';
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".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?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" ^ "?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" + "?" + $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"
)
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")
]
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
Parameter
String
max length : 200Enter the project name.
String
max length : 80000Enter the project description.
String
Enter the project type. Accepted values : active,template,archived
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).
String
Enter the completed time of 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
String
Enter the color code of the project in hex format (for example: #FF5733).
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' \
-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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024";
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("completed_time", "-");
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("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("color", "-");
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');
const payload = JSON.stringify({"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"});
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")
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":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}'
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_POSTFIELDS => '{"name":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}',
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"
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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}'
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");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
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\",\"completed_time\":\"-\",\"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\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"-\"}");
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");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""project_type"":""-"",""owner"":{""zpuid"":""4000000002055""},""is_public_project"":""-"",""start_date"":""2023-12-20"",""end_date"":""2024-12-20"",""completed_time"":""-"",""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""},""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""color"":""-""}",
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");
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\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"completed_time\":\"-\",\"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\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"-\"}");
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"
"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\",\"completed_time\":\"-\",\"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\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"-\"}"
: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\",\"completed_time\":\"-\",\"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\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"-\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024", 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 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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}
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");
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\",\"completed_time\":\"-\",\"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\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"-\"}";
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';
const options = {
method: 'PATCH',
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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"})
};
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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}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")
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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}""") }
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"];
[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\",\"completed_time\":\"-\",\"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\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"-\"}" 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" 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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}|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":"-","description":"-","project_type":"-","owner":{"zpuid":"4000000002055"},"is_public_project":"-","start_date":"2023-12-20","end_date":"2024-12-20","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024" -Method PATCH -Headers $headers -Body $body
$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_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"project_type\":\"-\",\"owner\":{\"zpuid\":\"4000000002055\"},\"is_public_project\":\"-\",\"start_date\":\"2023-12-20\",\"end_date\":\"2024-12-20\",\"completed_time\":\"-\",\"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\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"-\"}"
)
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")
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","completed_time":"-","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"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"-"}
""".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
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
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.
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.
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]"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/comments";
params = Map();
params.put("content", "Sample content");
params.put("attachment_ids", "[12345678987654321]");
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]"});
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]"}'
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]"}',
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]"}'
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]\"}");
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]""}",
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]\"}");
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]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\"}")
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]"}
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]\"}";
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]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Sample content","attachment_ids":"[12345678987654321]"}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]"}""") }
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]\"}" 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]"}|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]"}
'@
$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]\"}"
)
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]"}
""".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.
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]"}'
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]");
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]"});
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]"}'
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]"}',
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]"}'
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]\"}");
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]""}",
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]\"}");
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]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Sample content\",\"attachment_ids\":\"[12345678987654321]\"}")
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]"}
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]\"}";
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]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Sample content","attachment_ids":"[12345678987654321]"}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]"}""") }
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]\"}" 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]"}|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]"}
'@
$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]\"}"
)
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]"}
""".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 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.
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":"-"}'
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", "-");
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":"-"});
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":"-"}'
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":"-"}',
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":"-"}'
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\":\"-\"}");
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"":""-""}",
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\":\"-\"}");
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\":\"-\"}"
: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\":\"-\"}")
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":"-"}
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\":\"-\"}";
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":"-"})
};
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":"-"}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":"-"}""") }
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\":\"-\"}" 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":"-"}|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":"-"}
'@
$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\":\"-\"}"
)
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":"-"}
""".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.
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"]}'
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"]);
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"]});
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"]}'
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"]}',
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"]}'
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\"]}");
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""]}",
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\"]}");
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\"]}"
: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\"]}")
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"]}
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\"]}";
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"]})
};
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"]}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"]}""") }
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\"]}" 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"]}|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"]}
'@
$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\"]}"
)
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"]}
""".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.
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"]}'
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"]);
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"]});
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"]}'
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"]}',
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"]}'
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\"]}");
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""]}",
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\"]}");
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\"]}"
: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\"]}")
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"]}
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\"]}";
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"]})
};
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"]}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"]}""") }
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\"]}" 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"]}|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"]}
'@
$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\"]}"
)
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"]}
""".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
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
curl -X GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/linkedissues' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/linkedissues";
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/linkedissues');
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/linkedissues")
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/linkedissues";
$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/linkedissues"
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/linkedissues");
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/linkedissues");
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/linkedissues");
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/linkedissues"
{: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/linkedissues", 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/linkedissues 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/linkedissues");
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/linkedissues';
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/linkedissues")
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/linkedissues"];
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/linkedissues" 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/linkedissues" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/linkedissues"
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/linkedissues")!
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
Establish a link between multiple issues.
OAuth Scope:
ZohoProjects.bugs.CREATE
Parameter
String
requiredEnter the type of relationship between the issues. Example: duplicates, blocks, or is blocked by.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the issues to link to this issue. Maximum 100 issues allowed.
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/link' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"link_type":"relate","issue_ids":"23806000097533216"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link";
params = Map();
params.put("link_type", "relate");
params.put("issue_ids", "23806000097533216");
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/link');
const payload = JSON.stringify({"link_type":"relate","issue_ids":"23806000097533216"});
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/link")
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 = '{"link_type":"relate","issue_ids":"23806000097533216"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"link_type":"relate","issue_ids":"23806000097533216"}',
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/link"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"link_type":"relate","issue_ids":"23806000097533216"}'
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/link");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}");
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/link");
request.Content = new StringContent(
@"{""link_type"":""relate"",""issue_ids"":""23806000097533216""}",
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/link");
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, "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}");
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/link"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link", 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/link HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"link_type":"relate","issue_ids":"23806000097533216"}
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/link");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}";
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/link';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"link_type":"relate","issue_ids":"23806000097533216"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"link_type":"relate","issue_ids":"23806000097533216"}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/link")
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("""{"link_type":"relate","issue_ids":"23806000097533216"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link"];
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 = [@"{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}" 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/link" 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|{"link_type":"relate","issue_ids":"23806000097533216"}|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 = @'
{"link_type":"relate","issue_ids":"23806000097533216"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link")!
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 = """
{"link_type":"relate","issue_ids":"23806000097533216"}
""".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
Link multiple issues at once in a project.
OAuth Scope:
ZohoProjects.bugs.CREATE
Parameter
String
requiredEnter the type of relationship between the issues. Example: duplicates, blocks, or is blocked by.
JSONArray
requiredmax length : 7000
array size : 0-100
Enter the IDs of the source issues from which the links will be created. Maximum 100 issue IDs allowed.
JSONArray
requiredmax length : 7000
array size : 0-100
Enter the IDs of the issues to link to the source issues. Maximum 100 issue IDs allowed.
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/bulk-link-bugs' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-link-bugs";
params = Map();
params.put("link_type", "relate");
params.put("issue_ids", "23806000097533216");
params.put("linking_issue_ids", "[139655000000478101,139655000000480128]");
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/bulk-link-bugs');
const payload = JSON.stringify({"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"});
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/bulk-link-bugs")
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 = '{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-link-bugs";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}',
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/bulk-link-bugs"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}'
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/bulk-link-bugs");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\",\"linking_issue_ids\":\"[139655000000478101,139655000000480128]\"}");
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/bulk-link-bugs");
request.Content = new StringContent(
@"{""link_type"":""relate"",""issue_ids"":""23806000097533216"",""linking_issue_ids"":""[139655000000478101,139655000000480128]""}",
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/bulk-link-bugs");
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, "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\",\"linking_issue_ids\":\"[139655000000478101,139655000000480128]\"}");
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/bulk-link-bugs"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\",\"linking_issue_ids\":\"[139655000000478101,139655000000480128]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\",\"linking_issue_ids\":\"[139655000000478101,139655000000480128]\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-link-bugs", 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/bulk-link-bugs HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}
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/bulk-link-bugs");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\",\"linking_issue_ids\":\"[139655000000478101,139655000000480128]\"}";
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/bulk-link-bugs';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}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/bulk-link-bugs")
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("""{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-link-bugs"];
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 = [@"{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\",\"linking_issue_ids\":\"[139655000000478101,139655000000480128]\"}" 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/bulk-link-bugs" 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|{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}|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 = @'
{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-link-bugs" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-link-bugs"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\",\"linking_issue_ids\":\"[139655000000478101,139655000000480128]\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-link-bugs")!
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 = """
{"link_type":"relate","issue_ids":"23806000097533216","linking_issue_ids":"[139655000000478101,139655000000480128]"}
""".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 link type between two linked issues.
OAuth Scope:
ZohoProjects.bugs.UPDATE
Parameter
String
requiredEnter the type of relationship between the issues. Example: duplicates, blocks, or is blocked by.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the issues to link to this issue. Maximum 100 issues allowed.
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/link/[LINKID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"link_type":"relate","issue_ids":"23806000097533216"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]";
params = Map();
params.put("link_type", "relate");
params.put("issue_ids", "23806000097533216");
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/link/[LINKID]');
const payload = JSON.stringify({"link_type":"relate","issue_ids":"23806000097533216"});
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/link/[LINKID]")
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 = '{"link_type":"relate","issue_ids":"23806000097533216"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"link_type":"relate","issue_ids":"23806000097533216"}',
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/link/[LINKID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"link_type":"relate","issue_ids":"23806000097533216"}'
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/link/[LINKID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}");
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/link/[LINKID]");
request.Content = new StringContent(
@"{""link_type"":""relate"",""issue_ids"":""23806000097533216""}",
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/link/[LINKID]");
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, "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}");
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/link/[LINKID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]", 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/link/[LINKID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"link_type":"relate","issue_ids":"23806000097533216"}
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/link/[LINKID]");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}";
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/link/[LINKID]';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"link_type":"relate","issue_ids":"23806000097533216"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"link_type":"relate","issue_ids":"23806000097533216"}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/link/[LINKID]")
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("""{"link_type":"relate","issue_ids":"23806000097533216"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]"];
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 = [@"{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}" 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/link/[LINKID]" 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|{"link_type":"relate","issue_ids":"23806000097533216"}|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 = @'
{"link_type":"relate","issue_ids":"23806000097533216"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"link_type\":\"relate\",\"issue_ids\":\"23806000097533216\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]")!
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 = """
{"link_type":"relate","issue_ids":"23806000097533216"}
""".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 the link between issues in a project.
OAuth Scope:
ZohoProjects.bugs.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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]";
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/link/[LINKID]');
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/link/[LINKID]")
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/link/[LINKID]";
$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/link/[LINKID]"
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/link/[LINKID]");
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/link/[LINKID]");
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/link/[LINKID]");
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/link/[LINKID]"
{: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/link/[LINKID]", 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/link/[LINKID] 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/link/[LINKID]");
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/link/[LINKID]';
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/link/[LINKID]")
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/link/[LINKID]"];
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/link/[LINKID]" 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/link/[LINKID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/link/[LINKID]"
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/link/[LINKID]")!
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-task mapping operations in Zoho Projects. Use this API to retrieve associated tasks, associate tasks with an issue, bulk-associate tasks, or dissociate tasks from an issue.
Retrieve the tasks associated with issues.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
JSONArray
Enter the IDs of the issues whose associated tasks you want to retrieve.
int
Enter the page number. Example: 1
int
Enter the number of tasks to display per page. Maximum 100 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/issues/associated-tasks?issue_ids=23806000097533216&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues/associated-tasks";
params = Map();
params.put("issue_ids", "23806000097533216");
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/issues/associated-tasks');
url.searchParams.append('issue_ids', '23806000097533216');
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/issues/associated-tasks")
params = {
"issue_ids" => "23806000097533216",
"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 = [
'issue_ids' => '23806000097533216',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues/associated-tasks" . "?" . 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/associated-tasks"
params = {
"issue_ids": "23806000097533216",
"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_issue_ids = curl_easy_escape(curl, "23806000097533216", 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/issues/associated-tasks?issue_ids=%s&page=%s&per_page=%s", enc_issue_ids, 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_issue_ids);
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["issue_ids"] = "23806000097533216";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/issues/associated-tasks") { 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_issue_ids = curl_easy_escape(curl, "23806000097533216", 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/issues/associated-tasks";
url += "?issue_ids=" + std::string(enc_issue_ids);
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_issue_ids);
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-issue_ids (java.net.URLEncoder/encode "23806000097533216" "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/issues/associated-tasks" "?issue_ids=" enc-issue_ids "&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/issues/associated-tasks", nil)
q := req.URL.Query()
q.Add("issue_ids", "23806000097533216")
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/issues/associated-tasks?issue_ids=23806000097533216&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/issues/associated-tasks");
uriBuilder.addParameter("issue_ids", "23806000097533216");
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/issues/associated-tasks';
const params = new URLSearchParams({
'issue_ids': '23806000097533216',
'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));
issue_ids = "23806000097533216"
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/issues/associated-tasks".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("issue_ids", "23806000097533216")
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 *encodedIssue_ids = [@"23806000097533216" 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/issues/associated-tasks?issue_ids=%@&page=%@&per_page=%@", encodedIssue_ids, 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_issue_ids = Uri.pct_encode "23806000097533216" 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/issues/associated-tasks" ^ "?issue_ids=" ^ enc_issue_ids ^ "&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 = @{
issue_ids = "23806000097533216"
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/issues/associated-tasks" + "?" + $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/associated-tasks"
params <- list(
issue_ids = "23806000097533216",
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/issues/associated-tasks")!
components.queryItems = [
URLQueryItem(name: "issue_ids", value: "23806000097533216"),
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 tasks associated with an issue from a project.
OAuth Scope:
ZohoProjects.bugs.READ
Query Parameter
String
Enter the starting index for paginating through associated tasks. Example: 0
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/associated-tasks?sindex=-' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks";
params = Map();
params.put("sindex", "-");
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/associated-tasks');
url.searchParams.append('sindex', '-');
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/associated-tasks")
params = {
"sindex" => "-"
}
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 = [
'sindex' => '-',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks" . "?" . 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/associated-tasks"
params = {
"sindex": "-"
}
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_sindex = curl_easy_escape(curl, "-", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks?sindex=%s", enc_sindex);
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_sindex);
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["sindex"] = "-";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks") { 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_sindex = curl_easy_escape(curl, "-", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks";
url += "?sindex=" + std::string(enc_sindex);
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_sindex);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-sindex (java.net.URLEncoder/encode "-" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks" "?sindex=" enc-sindex)]
(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/associated-tasks", nil)
q := req.URL.Query()
q.Add("sindex", "-")
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/associated-tasks?sindex=- 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/associated-tasks");
uriBuilder.addParameter("sindex", "-");
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/associated-tasks';
const params = new URLSearchParams({
'sindex': '-'
});
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));
sindex = - 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/associated-tasks".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("sindex", "-")
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 *encodedSindex = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks?sindex=%@", encodedSindex];
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_sindex = Uri.pct_encode "-" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks" ^ "?sindex=" ^ enc_sindex) 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 = @{
sindex = "-"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associated-tasks" + "?" + $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/associated-tasks"
params <- list(
sindex = "-"
)
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/associated-tasks")!
components.queryItems = [
URLQueryItem(name: "sindex", 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
Associate tasks with a specific issue.
OAuth Scope:
ZohoProjects.bugs.UPDATE
Parameter
JSONArray
requiredEnter the IDs of the tasks to associate with 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/1752587000000097233/associate-tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'task_ids = [2223806000097532204]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks";
params = Map();
params.put("task_ids", [2223806000097532204]);
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/associate-tasks');
url.searchParams.append('task_ids', '[2223806000097532204]');
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/associate-tasks")
params = {
"task_ids" => "[2223806000097532204]"
}
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 = [
'task_ids' => '[2223806000097532204]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks" . "?" . 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/issues/1752587000000097233/associate-tasks"
params = {
"task_ids": "[2223806000097532204]"
}
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_task_ids = curl_easy_escape(curl, "[2223806000097532204]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks?task_ids=%s", enc_task_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, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_task_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["task_ids"] = "[2223806000097532204]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks") { 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_task_ids = curl_easy_escape(curl, "[2223806000097532204]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks";
url += "?task_ids=" + std::string(enc_task_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, "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_task_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-task_ids (java.net.URLEncoder/encode "[2223806000097532204]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks" "?task_ids=" enc-task_ids)]
(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/issues/1752587000000097233/associate-tasks", nil)
q := req.URL.Query()
q.Add("task_ids", "[2223806000097532204]")
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/issues/1752587000000097233/associate-tasks?task_ids=%5B2223806000097532204%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/projects/1752587000000097024/issues/1752587000000097233/associate-tasks");
uriBuilder.addParameter("task_ids", "[2223806000097532204]");
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/associate-tasks';
const params = new URLSearchParams({
'task_ids': '[2223806000097532204]'
});
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));
task_ids = [2223806000097532204]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/associate-tasks".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("task_ids", "[2223806000097532204]")
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 *encodedTask_ids = [@"[2223806000097532204]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks?task_ids=%@", encodedTask_ids];
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_task_ids = Uri.pct_encode "[2223806000097532204]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks" ^ "?task_ids=" ^ enc_task_ids) 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 = @{
task_ids = "[2223806000097532204]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/associate-tasks" + "?" + $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/issues/1752587000000097233/associate-tasks"
params <- list(
task_ids = "[2223806000097532204]"
)
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/issues/1752587000000097233/associate-tasks")!
components.queryItems = [
URLQueryItem(name: "task_ids", value: "[2223806000097532204]")
]
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
Associate tasks with multiple issues in a project.
OAuth Scope:
ZohoProjects.bugs.UPDATE
Parameter
JSONArray
requiredmax length : 7000
array size : 0-100
Enter the IDs of the issues to associate tasks with. Maximum 100 issue IDs allowed.
JSONArray
requiredmax length : 7000
array size : 0-100
Enter the IDs of the tasks to associate with the specified issues. Maximum 100 task IDs allowed.
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/bulk-associate-tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-associate-tasks";
params = Map();
params.put("issue_ids", "23806000097533216");
params.put("task_ids", [2223806000097532204]);
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/bulk-associate-tasks');
const payload = JSON.stringify({"issue_ids":"23806000097533216","task_ids":[2223806000097532204]});
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/bulk-associate-tasks")
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 = '{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-associate-tasks";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}',
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/bulk-associate-tasks"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}'
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/bulk-associate-tasks");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"issue_ids\":\"23806000097533216\",\"task_ids\":[2223806000097532204]}");
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/bulk-associate-tasks");
request.Content = new StringContent(
@"{""issue_ids"":""23806000097533216"",""task_ids"":[2223806000097532204]}",
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/bulk-associate-tasks");
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, "{\"issue_ids\":\"23806000097533216\",\"task_ids\":[2223806000097532204]}");
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/bulk-associate-tasks"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"issue_ids\":\"23806000097533216\",\"task_ids\":[2223806000097532204]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"issue_ids\":\"23806000097533216\",\"task_ids\":[2223806000097532204]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-associate-tasks", 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/bulk-associate-tasks HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}
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/bulk-associate-tasks");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"issue_ids\":\"23806000097533216\",\"task_ids\":[2223806000097532204]}";
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/bulk-associate-tasks';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"issue_ids":"23806000097533216","task_ids":[2223806000097532204]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}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/bulk-associate-tasks")
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("""{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-associate-tasks"];
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 = [@"{\"issue_ids\":\"23806000097533216\",\"task_ids\":[2223806000097532204]}" 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/bulk-associate-tasks" 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|{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}|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 = @'
{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-associate-tasks" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-associate-tasks"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"issue_ids\":\"23806000097533216\",\"task_ids\":[2223806000097532204]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/bulk-associate-tasks")!
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 = """
{"issue_ids":"23806000097533216","task_ids":[2223806000097532204]}
""".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 task association from an issue. Use this API to unlink a task from an issue.
OAuth Scope:
ZohoProjects.bugs.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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/task/1752587000000097101' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/task/1752587000000097101";
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/task/1752587000000097101');
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/task/1752587000000097101")
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/task/1752587000000097101";
$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/task/1752587000000097101"
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/task/1752587000000097101");
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/task/1752587000000097101");
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/task/1752587000000097101");
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/task/1752587000000097101"
{: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/task/1752587000000097101", 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/task/1752587000000097101 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/task/1752587000000097101");
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/task/1752587000000097101';
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/task/1752587000000097101")
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/task/1752587000000097101"];
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/task/1752587000000097101" 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/task/1752587000000097101" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/task/1752587000000097101"
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/task/1752587000000097101")!
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 resolution operations within Zoho Projects. Use this API to retrieve, add, update, or delete resolutions, manage resolution custom fields, and dissociate attachments.
Retrieve the resolution 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/resolution' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution";
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/resolution');
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/resolution")
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/resolution";
$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/resolution"
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/resolution");
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/resolution");
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/resolution");
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/resolution"
{: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/resolution", 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/resolution 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/resolution");
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/resolution';
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/resolution")
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/resolution"];
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/resolution" 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/resolution" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution"
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/resolution")!
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 the resolution to an issue.
OAuth Scope:
ZohoProjects.bugs.CREATE
Parameter
String
requiredEnter the resolution details describing how the issue was resolved.
long
Enter the status ID.
String
max length : 150Enter the value for a character-type custom field. The field name must follow the UDF_NCHAR naming convention.
long
Enter the user ID for a user-type custom field. The field name must follow the UDF_NUSER naming convention.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of attachments to include with the resolution. Maximum 100 attachments allowed.
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/resolution' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution";
params = Map();
params.put("resolution", "The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.");
params.put("status_id", "23806000097533111");
params.put("UDF_NCHAR", "-");
params.put("UDF_NUSER", "-");
params.put("attachment_ids", ["23806000097533241"]);
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/resolution');
const payload = JSON.stringify({"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]});
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/resolution")
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 = '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}',
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/resolution"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}'
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/resolution");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}");
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/resolution");
request.Content = new StringContent(
@"{""resolution"":""The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off."",""status_id"":""23806000097533111"",""UDF_NCHAR"":""-"",""UDF_NUSER"":""-"",""attachment_ids"":[""23806000097533241""]}",
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/resolution");
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, "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}");
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/resolution"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution", 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/resolution HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}
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/resolution");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}";
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/resolution';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}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/resolution")
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("""{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution"];
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 = [@"{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}" 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/resolution" 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|{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}|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 = @'
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution")!
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 = """
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}
""".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 resolution of an issue.
OAuth Scope:
ZohoProjects.bugs.UPDATE
Parameter
String
requiredEnter the updated resolution details for this issue.
long
Enter the status ID.
String
max length : 150Enter the value for a character-type custom field. The field name must follow the UDF_NCHAR naming convention.
long
Enter the user ID for a user-type custom field. The field name must follow the UDF_NUSER naming convention.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of attachments to include with the updated resolution. Maximum 100 attachments allowed.
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/projects/1752587000000097024/issues/1752587000000097233/resolution' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution";
params = Map();
params.put("resolution", "The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.");
params.put("status_id", "23806000097533111");
params.put("UDF_NCHAR", "-");
params.put("UDF_NUSER", "-");
params.put("attachment_ids", ["23806000097533241"]);
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/projects/1752587000000097024/issues/1752587000000097233/resolution');
const payload = JSON.stringify({"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]});
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/projects/1752587000000097024/issues/1752587000000097233/resolution")
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 = '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}',
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/resolution"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}'
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/projects/1752587000000097024/issues/1752587000000097233/resolution");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}");
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/projects/1752587000000097024/issues/1752587000000097233/resolution");
request.Content = new StringContent(
@"{""resolution"":""The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off."",""status_id"":""23806000097533111"",""UDF_NCHAR"":""-"",""UDF_NUSER"":""-"",""attachment_ids"":[""23806000097533241""]}",
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/resolution");
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, "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}");
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/projects/1752587000000097024/issues/1752587000000097233/resolution"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution", 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/projects/1752587000000097024/issues/1752587000000097233/resolution HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}
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/resolution");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}";
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/resolution';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}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/resolution")
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("""{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution"];
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 = [@"{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}" 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/resolution" 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|{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}|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 = @'
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"resolution\":\"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.\",\"status_id\":\"23806000097533111\",\"UDF_NCHAR\":\"-\",\"UDF_NUSER\":\"-\",\"attachment_ids\":[\"23806000097533241\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution")!
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 = """
{"resolution":"The authentication module session token invalidation logic was patched to enforce expiry on timeout. Regression tests have been completed and the fix is pending QA sign-off.","status_id":"23806000097533111","UDF_NCHAR":"-","UDF_NUSER":"-","attachment_ids":["23806000097533241"]}
""".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 the resolution of an issue.
OAuth Scope:
ZohoProjects.bugs.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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution";
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/resolution');
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/resolution")
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/resolution";
$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/resolution"
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/resolution");
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/resolution");
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/resolution");
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/resolution"
{: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/resolution", 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/resolution 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/resolution");
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/resolution';
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/resolution")
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/resolution"];
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/resolution" 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/resolution" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/resolution"
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/resolution")!
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 follower related operations within Zoho Projects. Use this API to get followers, follow or unfollow an issue, and remove followers.
Retrieve the followers of an issue in 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/followers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers";
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/followers');
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/followers")
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/followers";
$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/followers"
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/followers");
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/followers");
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/followers");
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/followers"
{: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/followers", 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/followers 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/followers");
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/followers';
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/followers")
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/followers"];
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/followers" 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/followers" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers"
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/followers")!
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
Follow an issue to receive updates or notifications.
OAuth Scope:
ZohoProjects.bugs.CREATE
Parameter
JSONArray
requiredmax length : 7000
array size : 0-100
Enter the IDs of the users to add as followers of this issue. Maximum 100 users allowed.
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/followers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"follower_ids":[57261352]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers";
params = Map();
params.put("follower_ids", [57261352]);
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/followers');
const payload = JSON.stringify({"follower_ids":[57261352]});
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/followers")
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 = '{"follower_ids":[57261352]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"follower_ids":[57261352]}',
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/followers"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"follower_ids":[57261352]}'
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/followers");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"follower_ids\":[57261352]}");
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/followers");
request.Content = new StringContent(
@"{""follower_ids"":[57261352]}",
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/followers");
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, "{\"follower_ids\":[57261352]}");
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/followers"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"follower_ids\":[57261352]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"follower_ids\":[57261352]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers", 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/followers HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"follower_ids":[57261352]}
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/followers");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"follower_ids\":[57261352]}";
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/followers';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"follower_ids":[57261352]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"follower_ids":[57261352]}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/followers")
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("""{"follower_ids":[57261352]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers"];
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 = [@"{\"follower_ids\":[57261352]}" 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/followers" 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|{"follower_ids":[57261352]}|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 = @'
{"follower_ids":[57261352]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"follower_ids\":[57261352]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers")!
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 = """
{"follower_ids":[57261352]}
""".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 an issue in a project.
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/followers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers";
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/followers');
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/followers")
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/followers";
$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/followers"
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/followers");
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/followers");
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/followers");
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/followers"
{: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/followers", 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/followers 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/followers");
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/followers';
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/followers")
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/followers"];
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/followers" 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/followers" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/followers"
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/followers")!
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 custom view related operations within Zoho Projects. Use this API to create, retrieve, update, or delete custom views, set views as default or favorite, and manage the columns and layout of custom views for both individual projects and the portal.
Retrieve all issue custom views from the Zoho Projects portal.
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/issues/customviews' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/issues/customviews";
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/issues/customviews');
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/customviews")
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/issues/customviews";
$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/customviews"
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/issues/customviews");
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/issues/customviews");
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/issues/customviews");
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/issues/customviews"
{: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/issues/customviews", 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/issues/customviews 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/customviews");
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/customviews';
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/issues/customviews")
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/issues/customviews"];
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/issues/customviews" 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/issues/customviews" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/issues/customviews"
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/issues/customviews")!
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()
Retrieve issue custom views 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/customviews' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/customviews";
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/customviews');
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/customviews")
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/customviews";
$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/customviews"
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/customviews");
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/customviews");
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/customviews");
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/customviews"
{: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/customviews", 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/customviews 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/customviews");
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/customviews';
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/customviews")
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/customviews"];
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/customviews" 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/customviews" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/customviews"
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/customviews")!
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 details of a custom view along with its fields 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/customviews/1752587000000097269' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/customviews/1752587000000097269";
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/customviews/1752587000000097269');
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/customviews/1752587000000097269")
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/customviews/1752587000000097269";
$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/customviews/1752587000000097269"
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/customviews/1752587000000097269");
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/customviews/1752587000000097269");
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/customviews/1752587000000097269");
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/customviews/1752587000000097269"
{: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/customviews/1752587000000097269", 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/customviews/1752587000000097269 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/customviews/1752587000000097269");
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/customviews/1752587000000097269';
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/customviews/1752587000000097269")
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/customviews/1752587000000097269"];
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/customviews/1752587000000097269" 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/customviews/1752587000000097269" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/customviews/1752587000000097269"
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/customviews/1752587000000097269")!
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 attachments related operations within Zoho Projects. Use this API to retrieve, associate, dissociate, or get project attachments.
Retrieve all attachments associated with an issue.
OAuth Scope:
ZohoProjects.bugs.READ
Query Parameter
JSONArray
Enter the IDs of file extension types to filter attachments by file format.
JSONArray
Enter the application integration type to filter attachments by their source application.
String
Filter attachments by where they were added. Accepted values: comments, resolution, or bug.
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/attachments?extension_ids=-&app_types=-&sub_type=-' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments";
params = Map();
params.put("extension_ids", "-");
params.put("app_types", "-");
params.put("sub_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/1752587000000097024/issues/1752587000000097233/attachments');
url.searchParams.append('extension_ids', '-');
url.searchParams.append('app_types', '-');
url.searchParams.append('sub_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/1752587000000097024/issues/1752587000000097233/attachments")
params = {
"extension_ids" => "-",
"app_types" => "-",
"sub_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 = [
'extension_ids' => '-',
'app_types' => '-',
'sub_type' => '-',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" . "?" . 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/attachments"
params = {
"extension_ids": "-",
"app_types": "-",
"sub_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_extension_ids = curl_easy_escape(curl, "-", 0);
char *enc_app_types = curl_easy_escape(curl, "-", 0);
char *enc_sub_type = curl_easy_escape(curl, "-", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments?extension_ids=%s&app_types=%s&sub_type=%s", enc_extension_ids, enc_app_types, enc_sub_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_extension_ids);
curl_free(enc_app_types);
curl_free(enc_sub_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["extension_ids"] = "-";
query["app_types"] = "-";
query["sub_type"] = "-";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments") { 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_extension_ids = curl_easy_escape(curl, "-", 0);
char* enc_app_types = curl_easy_escape(curl, "-", 0);
char* enc_sub_type = curl_easy_escape(curl, "-", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments";
url += "?extension_ids=" + std::string(enc_extension_ids);
url += "&app_types=" + std::string(enc_app_types);
url += "&sub_type=" + std::string(enc_sub_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_extension_ids);
curl_free(enc_app_types);
curl_free(enc_sub_type);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-extension_ids (java.net.URLEncoder/encode "-" "UTF-8")
enc-app_types (java.net.URLEncoder/encode "-" "UTF-8")
enc-sub_type (java.net.URLEncoder/encode "-" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" "?extension_ids=" enc-extension_ids "&app_types=" enc-app_types "&sub_type=" enc-sub_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/1752587000000097024/issues/1752587000000097233/attachments", nil)
q := req.URL.Query()
q.Add("extension_ids", "-")
q.Add("app_types", "-")
q.Add("sub_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/1752587000000097024/issues/1752587000000097233/attachments?extension_ids=-&app_types=-&sub_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/1752587000000097024/issues/1752587000000097233/attachments");
uriBuilder.addParameter("extension_ids", "-");
uriBuilder.addParameter("app_types", "-");
uriBuilder.addParameter("sub_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/1752587000000097024/issues/1752587000000097233/attachments';
const params = new URLSearchParams({
'extension_ids': '-',
'app_types': '-',
'sub_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));
extension_ids = -
app_types = -
sub_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/1752587000000097024/issues/1752587000000097233/attachments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("extension_ids", "-")
urlBuilder.addQueryParameter("app_types", "-")
urlBuilder.addQueryParameter("sub_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 *encodedExtension_ids = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedApp_types = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSub_type = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments?extension_ids=%@&app_types=%@&sub_type=%@", encodedExtension_ids, encodedApp_types, encodedSub_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_extension_ids = Uri.pct_encode "-" in
let enc_app_types = Uri.pct_encode "-" in
let enc_sub_type = Uri.pct_encode "-" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" ^ "?extension_ids=" ^ enc_extension_ids ^ "&app_types=" ^ enc_app_types ^ "&sub_type=" ^ enc_sub_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 = @{
extension_ids = "-"
app_types = "-"
sub_type = "-"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" + "?" + $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/attachments"
params <- list(
extension_ids = "-",
app_types = "-",
sub_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/1752587000000097024/issues/1752587000000097233/attachments")!
components.queryItems = [
URLQueryItem(name: "extension_ids", value: "-"),
URLQueryItem(name: "app_types", value: "-"),
URLQueryItem(name: "sub_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
Associate attachments with an issue.
OAuth Scope:
ZohoProjects.bugs.UPDATE
Parameter
JSONArray
Enter the IDs of the attachments to associate with 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/1752587000000097233/attachments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'attachment_ids = ["23806000097533241"]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments";
params = Map();
params.put("attachment_ids", ["23806000097533241"]);
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/attachments');
url.searchParams.append('attachment_ids', '["23806000097533241"]');
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/attachments")
params = {
"attachment_ids" => "[\"23806000097533241\"]"
}
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 = [
'attachment_ids' => '["23806000097533241"]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" . "?" . 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/issues/1752587000000097233/attachments"
params = {
"attachment_ids": "[\"23806000097533241\"]"
}
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_attachment_ids = curl_easy_escape(curl, "[\"23806000097533241\"]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments?attachment_ids=%s", enc_attachment_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, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_attachment_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["attachment_ids"] = "[\"23806000097533241\"]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments") { 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_attachment_ids = curl_easy_escape(curl, "[\"23806000097533241\"]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments";
url += "?attachment_ids=" + std::string(enc_attachment_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, "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_attachment_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-attachment_ids (java.net.URLEncoder/encode "[\"23806000097533241\"]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" "?attachment_ids=" enc-attachment_ids)]
(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/issues/1752587000000097233/attachments", nil)
q := req.URL.Query()
q.Add("attachment_ids", "[\"23806000097533241\"]")
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/issues/1752587000000097233/attachments?attachment_ids=%5B%2223806000097533241%22%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/projects/1752587000000097024/issues/1752587000000097233/attachments");
uriBuilder.addParameter("attachment_ids", "[\"23806000097533241\"]");
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/attachments';
const params = new URLSearchParams({
'attachment_ids': '["23806000097533241"]'
});
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));
attachment_ids = ["23806000097533241"]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/attachments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("attachment_ids", "[\"23806000097533241\"]")
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 *encodedAttachment_ids = [@"[\"23806000097533241\"]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments?attachment_ids=%@", encodedAttachment_ids];
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_attachment_ids = Uri.pct_encode "[\"23806000097533241\"]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" ^ "?attachment_ids=" ^ enc_attachment_ids) 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 = @{
attachment_ids = "[`"23806000097533241`"]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments" + "?" + $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/issues/1752587000000097233/attachments"
params <- list(
attachment_ids = "[\"23806000097533241\"]"
)
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/issues/1752587000000097233/attachments")!
components.queryItems = [
URLQueryItem(name: "attachment_ids", value: "[\"23806000097533241\"]")
]
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
Disassociate an attachment from an issue.
OAuth Scope:
ZohoProjects.bugs.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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/1752587000000097260";
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/attachments/1752587000000097260');
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/attachments/1752587000000097260")
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/attachments/1752587000000097260";
$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/attachments/1752587000000097260"
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/attachments/1752587000000097260");
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/attachments/1752587000000097260");
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/attachments/1752587000000097260");
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/attachments/1752587000000097260"
{: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/attachments/1752587000000097260", 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/attachments/1752587000000097260 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/attachments/1752587000000097260");
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/attachments/1752587000000097260';
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/attachments/1752587000000097260")
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/attachments/1752587000000097260"];
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/attachments/1752587000000097260" 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/attachments/1752587000000097260" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/1752587000000097260"
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/attachments/1752587000000097260")!
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()
This module covers issue comments related operations within Zoho Projects. Use this API to retrieve, add, update, or delete comments and manage comment attachments.
Retrieve all comments associated with an issue.
OAuth Scope:
ZohoProjects.bugs.READ
Query Parameter
int
Enter the page number. Example: 1
int
Enter the number of comments to display per page.
String
Enter the sort order for comments. 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/comments?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/comments";
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/comments');
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/comments")
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/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/issues/1752587000000097233/comments"
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/comments?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/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(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/comments";
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/comments" "?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/comments", 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/comments?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/comments");
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/comments';
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/comments".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/comments?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/comments" ^ "?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/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/issues/1752587000000097233/comments"
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/comments")!
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 a specific comment on 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/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/comments/1752587000000097046" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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/issues/1752587000000097233/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
Retrieve attachments of a comment. Use this API to fetch files associated with a specific comment.
OAuth Scope:
ZohoProjects.bugs.READ
Query Parameter
long
Enter the ID of the comment to retrieve its associated attachments.
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/attachments/comments?comment_id=23806000097572017' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/comments";
params = Map();
params.put("comment_id", "23806000097572017");
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/attachments/comments');
url.searchParams.append('comment_id', '23806000097572017');
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/attachments/comments")
params = {
"comment_id" => "23806000097572017"
}
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 = [
'comment_id' => '23806000097572017',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/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/issues/1752587000000097233/attachments/comments"
params = {
"comment_id": "23806000097572017"
}
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_comment_id = curl_easy_escape(curl, "23806000097572017", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/comments?comment_id=%s", enc_comment_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_comment_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["comment_id"] = "23806000097572017";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/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_comment_id = curl_easy_escape(curl, "23806000097572017", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/comments";
url += "?comment_id=" + std::string(enc_comment_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_comment_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-comment_id (java.net.URLEncoder/encode "23806000097572017" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/comments" "?comment_id=" enc-comment_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/1752587000000097024/issues/1752587000000097233/attachments/comments", nil)
q := req.URL.Query()
q.Add("comment_id", "23806000097572017")
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/attachments/comments?comment_id=23806000097572017 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/attachments/comments");
uriBuilder.addParameter("comment_id", "23806000097572017");
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/attachments/comments';
const params = new URLSearchParams({
'comment_id': '23806000097572017'
});
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));
comment_id = "23806000097572017"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/attachments/comments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("comment_id", "23806000097572017")
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 *encodedComment_id = [@"23806000097572017" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/comments?comment_id=%@", encodedComment_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_comment_id = Uri.pct_encode "23806000097572017" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/comments" ^ "?comment_id=" ^ enc_comment_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 = @{
comment_id = "23806000097572017"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/attachments/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/issues/1752587000000097233/attachments/comments"
params <- list(
comment_id = "23806000097572017"
)
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/attachments/comments")!
components.queryItems = [
URLQueryItem(name: "comment_id", value: "23806000097572017")
]
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 an issue.
OAuth Scope:
ZohoProjects.bugs.CREATE
Parameter
String
requiredEnter the content of the comment to post on this issue.
JSONArray
max length : 7000array size : 0-100
Enter the ZUIDs of the users to notify about this comment. Maximum 100 users allowed.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of attachments to include with this comment. Maximum 100 attachments allowed.
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/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments";
params = Map();
params.put("comment", "The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.");
params.put("notify_users", ["78815938","78971742"]);
params.put("attachment_ids", ["23806000097533241"]);
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/comments');
const payload = JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]});
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/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 = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}',
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/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}'
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/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}");
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/comments");
request.Content = new StringContent(
@"{""comment"":""The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off."",""notify_users"":[""78815938"",""78971742""],""attachment_ids"":[""23806000097533241""]}",
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/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, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}");
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/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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/issues/1752587000000097233/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}
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/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}";
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/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}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/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("""{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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 = [@"{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}" 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/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|{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}|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 = @'
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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 = """
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}
""".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 a comment on an issue.
OAuth Scope:
ZohoProjects.bugs.UPDATE
Parameter
String
requiredEnter the updated content of the comment.
JSONArray
max length : 7000array size : 0-100
Enter the ZUIDs of the users to notify about this comment update. Maximum 100 users allowed.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of attachments to associate with the updated comment. Maximum 100 attachments allowed.
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/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments/1752587000000097046";
params = Map();
params.put("comment", "The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.");
params.put("notify_users", ["78815938","78971742"]);
params.put("attachment_ids", ["23806000097533241"]);
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/comments/1752587000000097046');
const payload = JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]});
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/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 = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}',
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/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}'
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/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}");
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/comments/1752587000000097046");
request.Content = new StringContent(
@"{""comment"":""The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off."",""notify_users"":[""78815938"",""78971742""],""attachment_ids"":[""23806000097533241""]}",
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/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, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}");
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/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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/issues/1752587000000097233/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}
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/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}";
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/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}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/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("""{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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 = [@"{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}" 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/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|{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}|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 = @'
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"notify_users\":[\"78815938\",\"78971742\"],\"attachment_ids\":[\"23806000097533241\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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 = """
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","notify_users":["78815938","78971742"],"attachment_ids":["23806000097533241"]}
""".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 an issue. Use this API to remove a comment 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/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/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/issues/1752587000000097233/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/issues/1752587000000097233/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/issues/1752587000000097233/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 task list related operations within Zoho Projects. Use this API to retrieve, create, update, reorder, move, or delete task lists in both portals and projects.
Retrieve all task lists across the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tasklists.READ
Query Parameter
int
default : 1Enter the page number to retrieve. Default: 1.
int
limit : 1-200default : 100
Enter the number of entries to be displayed per page. Accepted range: 1-200. Default: 100.
String
Enter the sort criteria. Accepted values: ASC(field_name) or DESC(field_name)
Supported fields :
idlast_modified_timecreated_timeflag
long
Enter the ID of a custom view.
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/all-tasklists?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=0&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22module_name%22%3A%22task%22%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "0");
params.put("filter", {"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"});
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/all-tasklists');
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', '0');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}');
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/all-tasklists")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "0",
""filter"" => "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}"
}
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' => '0',
'"filter"' => '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists" . "?" . 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/all-tasklists"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(last_modified_time)",
"view_id": "0",
""filter"": "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}"
}
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, "0", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists?page=%s&per_page=%s&sort_by=%s&view_id=%s&\"filter\"=%s", enc_page, enc_per_page, enc_sort_by, enc_view_id, 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_"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"] = "0";
query[""filter""] = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists") { 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, "0", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists";
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 += "&"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_"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 "0" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&view_id=" enc-view_id "&"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/all-tasklists", 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", "0")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}")
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/all-tasklists?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=0&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22module_name%22%3A%22task%22%7D%5D%2C%22pattern%22%3A%221+AND+2%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/all-tasklists");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "0");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}");
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/all-tasklists';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(last_modified_time)',
'view_id': '0',
'"filter"': '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}'
});
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 = "0"
"filter" = {"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}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/all-tasklists".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "0")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}")
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 = [@"0" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists?page=%@&per_page=%@&sort_by=%@&view_id=%@&"filter"=%@", encodedPage, encodedPer_page, encodedSort_by, encodedView_id, 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 "0" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&"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 = "0"
"filter" = "{`"criteria`":[{`"field_name`":`"status`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"module_name`":`"task`"}],`"pattern`":`"1 AND 2`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/all-tasklists"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(last_modified_time)",
view_id = "0",
"filter" = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}"
)
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/all-tasklists")!
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: "0"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}")
]
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_TICKET HTTP 401
INVALID_OAUTHTOKEN HTTP 401
Retrieve all task lists associated with a specific project.
OAuth Scope:
ZohoProjects.tasklists.READ
Query Parameter
int
default : 1Enter the page number to retrieve. Default: 1.
int
limit : 1-200default : 100
Specify the number of entries to be displayed per page. Accepted range: 1-200. Default: 100.
String
Enter the sort criteria. Accepted values: ASC(field_name) or DESC(field_name)
Supported fields :
idlast_modified_timecreated_timeflag
long
Enter the ID of a custom view.
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/tasklists?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=0&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22module_name%22%3A%22task%22%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "0");
params.put("filter", {"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"});
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/tasklists');
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', '0');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}');
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/tasklists")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "0",
""filter"" => "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}"
}
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' => '0',
'"filter"' => '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists" . "?" . 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/tasklists"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(last_modified_time)",
"view_id": "0",
""filter"": "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}"
}
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, "0", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists?page=%s&per_page=%s&sort_by=%s&view_id=%s&\"filter\"=%s", enc_page, enc_per_page, enc_sort_by, enc_view_id, 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_"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"] = "0";
query[""filter""] = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists") { 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, "0", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists";
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 += "&"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_"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 "0" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&view_id=" enc-view_id "&"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/tasklists", 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", "0")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}")
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/tasklists?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_id=0&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%2C%22module_name%22%3A%22task%22%7D%5D%2C%22pattern%22%3A%221+AND+2%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/tasklists");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "0");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}");
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/tasklists';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(last_modified_time)',
'view_id': '0',
'"filter"': '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}'
});
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 = "0"
"filter" = {"criteria":[{"field_name":"status","criteria_condition":"contains","value":["1752587000000097269"],"module_name":"task"}],"pattern":"1 AND 2"}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/tasklists".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "0")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}")
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 = [@"0" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists?page=%@&per_page=%@&sort_by=%@&view_id=%@&"filter"=%@", encodedPage, encodedPer_page, encodedSort_by, encodedView_id, 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 "0" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&"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 = "0"
"filter" = "{`"criteria`":[{`"field_name`":`"status`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"module_name`":`"task`"}],`"pattern`":`"1 AND 2`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists" + "?" + $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/tasklists"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(last_modified_time)",
view_id = "0",
"filter" = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}"
)
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/tasklists")!
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: "0"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"module_name\":\"task\"}],\"pattern\":\"1 AND 2\"}")
]
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_TICKET HTTP 401
INVALID_OAUTHTOKEN HTTP 401
Retrieve the details of a specific task list. Use this API to fetch metadata and configuration of a task list within a project.
OAuth Scope:
ZohoProjects.tasklists.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/tasklists/[TASKLISTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]";
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/tasklists/[TASKLISTID]');
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/tasklists/[TASKLISTID]")
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/tasklists/[TASKLISTID]";
$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/tasklists/[TASKLISTID]"
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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]"
{: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/tasklists/[TASKLISTID]", 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/tasklists/[TASKLISTID] 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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]';
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/tasklists/[TASKLISTID]")
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/tasklists/[TASKLISTID]"];
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/tasklists/[TASKLISTID]" 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/tasklists/[TASKLISTID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]"
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/tasklists/[TASKLISTID]")!
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 task list in a project.
OAuth Scope:
ZohoProjects.tasklists.CREATE
Parameter
String
requiredmax length : 10000
Enter the name of the task list.
String
max length : 100Specify the visibility of the task list. Accepted values: internal or external.
String
max length : 100Specify the status of the task list. Accepted values: active or completed.
JSONArray
max length : 10000Specify the tags to associate with this task list. Use add to attach new tags or remove to detach existing ones.
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/tasklists' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists";
params = Map();
params.put("name", "Tasklist");
params.put("milestone", {"id":"4000000062001"});
params.put("flag", "internal");
params.put("status", "active");
params.put("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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/projects/1752587000000097024/tasklists');
const payload = JSON.stringify({"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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/projects/1752587000000097024/tasklists")
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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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/projects/1752587000000097024/tasklists"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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/projects/1752587000000097024/tasklists");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"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/projects/1752587000000097024/tasklists");
request.Content = new StringContent(
@"{""name"":""Tasklist"",""milestone"":{""id"":""4000000062001""},""flag"":""internal"",""status"":""active"",""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""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/projects/1752587000000097024/tasklists");
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\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"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/projects/1752587000000097024/tasklists"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists", 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/tasklists HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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/projects/1752587000000097024/tasklists");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"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/projects/1752587000000097024/tasklists';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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/projects/1752587000000097024/tasklists")
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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists"];
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\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"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/projects/1752587000000097024/tasklists" 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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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 = @'
{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists")!
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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"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 details of an existing task list in a project.
OAuth Scope:
ZohoProjects.tasklists.CREATE
Parameter
String
max length : 10000Enter the name of the task list.
JSONObject
Specify the milestone to associate with this task list. Enter the milestone ID.
String
max length : 100Specify the visibility of the task list. Accepted values: internal (visible only to your team) or external (visible to external stakeholders).
String
max length : 100Specify the status of the task list. Accepted values: active or completed.
JSONArray
max length : 10000Update the tags associated with this task list. Use add to attach new tags or remove to detach existing ones.
String
Enter the color of the tasklist.
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/tasklists/[TASKLISTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]";
params = Map();
params.put("name", "Tasklist");
params.put("milestone", {"id":"4000000062001"});
params.put("flag", "internal");
params.put("status", "active");
params.put("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("color", "#67a0ff");
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/tasklists/[TASKLISTID]');
const payload = JSON.stringify({"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"});
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/tasklists/[TASKLISTID]")
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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}',
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/tasklists/[TASKLISTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}'
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/tasklists/[TASKLISTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#67a0ff\"}");
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/tasklists/[TASKLISTID]");
request.Content = new StringContent(
@"{""name"":""Tasklist"",""milestone"":{""id"":""4000000062001""},""flag"":""internal"",""status"":""active"",""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""color"":""#67a0ff""}",
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/tasklists/[TASKLISTID]");
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\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#67a0ff\"}");
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/tasklists/[TASKLISTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#67a0ff\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#67a0ff\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]", 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/tasklists/[TASKLISTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}
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/tasklists/[TASKLISTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#67a0ff\"}";
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/tasklists/[TASKLISTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}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/tasklists/[TASKLISTID]")
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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]"];
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\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#67a0ff\"}" 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/tasklists/[TASKLISTID]" 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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}|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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Tasklist\",\"milestone\":{\"id\":\"4000000062001\"},\"flag\":\"internal\",\"status\":\"active\",\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"color\":\"#67a0ff\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]")!
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":"Tasklist","milestone":{"id":"4000000062001"},"flag":"internal","status":"active","tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"color":"#67a0ff"}
""".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 task list from a project permanently.
OAuth Scope:
ZohoProjects.tasklists.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/tasklists/[TASKLISTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]";
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/tasklists/[TASKLISTID]');
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/tasklists/[TASKLISTID]")
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/tasklists/[TASKLISTID]";
$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/tasklists/[TASKLISTID]"
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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]"
{: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/tasklists/[TASKLISTID]", 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/tasklists/[TASKLISTID] 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/tasklists/[TASKLISTID]");
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/tasklists/[TASKLISTID]';
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/tasklists/[TASKLISTID]")
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/tasklists/[TASKLISTID]"];
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/tasklists/[TASKLISTID]" 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/tasklists/[TASKLISTID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]"
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/tasklists/[TASKLISTID]")!
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()
Create a default task list for a project.
OAuth Scope:
ZohoProjects.tasklists.CREATE
Parameter
String
requiredmax length : 100
Specify the task list flag. Accepted values: internal,external
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/default-tasklists' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"flag":"internal"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/default-tasklists";
params = Map();
params.put("flag", "internal");
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/default-tasklists');
const payload = JSON.stringify({"flag":"internal"});
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/default-tasklists")
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 = '{"flag":"internal"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/default-tasklists";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"flag":"internal"}',
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/default-tasklists"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"flag":"internal"}'
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/default-tasklists");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"flag\":\"internal\"}");
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/default-tasklists");
request.Content = new StringContent(
@"{""flag"":""internal""}",
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/default-tasklists");
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, "{\"flag\":\"internal\"}");
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/default-tasklists"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"flag\":\"internal\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"flag\":\"internal\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/default-tasklists", 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/default-tasklists HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"flag":"internal"}
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/default-tasklists");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"flag\":\"internal\"}";
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/default-tasklists';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"flag":"internal"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"flag":"internal"}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/default-tasklists")
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("""{"flag":"internal"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/default-tasklists"];
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 = [@"{\"flag\":\"internal\"}" 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/default-tasklists" 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|{"flag":"internal"}|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 = @'
{"flag":"internal"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/default-tasklists" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/default-tasklists"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"flag\":\"internal\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/default-tasklists")!
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 = """
{"flag":"internal"}
""".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 task list comments within Zoho Projects. Use this API to retrieve, add, update, or delete comments and manage comment attachments in task lists.
Retrieve multiple comments from a task list.
OAuth Scope:
ZohoProjects.tasklists.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
Enter the number of entries to be displayed per page.
String
Enter the sort criteria. Accepted values: ASC(field_name) or DESC(field_name)
Supported fields :
last_modified_timecreated_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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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
Retrieve a specific comment from a task list. Use this API to fetch the details of a single comment posted on a task list.
OAuth Scope:
ZohoProjects.tasklists.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/tasklists/[TASKLISTID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/comments/1752587000000097046" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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 task list.
OAuth Scope:
ZohoProjects.tasklists.CREATE
Parameter
String
requiredmax length : 500000
Enter the content of the comment.
JSONArray
max length : 10000array size : 0-10
Enter the IDs of attachments to include with this comment. Maximum 10 attachments allowed. You can use this APIto upload attachments and get the attachment 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/projects/1752587000000097024/tasklists/[TASKLISTID]/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments";
params = Map();
params.put("comment", "The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.");
params.put("attachments", [23806000073742867]);
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/tasklists/[TASKLISTID]/comments');
const payload = JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]});
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/tasklists/[TASKLISTID]/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 = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}',
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/tasklists/[TASKLISTID]/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}'
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/tasklists/[TASKLISTID]/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}");
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/tasklists/[TASKLISTID]/comments");
request.Content = new StringContent(
@"{""comment"":""The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off."",""attachments"":[23806000073742867]}",
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/tasklists/[TASKLISTID]/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, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}");
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/tasklists/[TASKLISTID]/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}
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/tasklists/[TASKLISTID]/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}";
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/tasklists/[TASKLISTID]/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}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/tasklists/[TASKLISTID]/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("""{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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 = [@"{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}" 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/tasklists/[TASKLISTID]/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|{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}|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 = @'
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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 = """
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}
""".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 an existing comment on a task list.
OAuth Scope:
ZohoProjects.tasklists.UPDATE
Parameter
String
requiredmax length : 500000
Enter the content of the comment.
JSONArray
max length : 10000array size : 0-10
Enter the IDs of attachments to include with this comment. Maximum 10 attachments allowed. You can use this APIto upload attachments and get the attachment 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments/1752587000000097046";
params = Map();
params.put("comment", "The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.");
params.put("attachments", [23806000073742867]);
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/tasklists/[TASKLISTID]/comments/1752587000000097046');
const payload = JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]});
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/tasklists/[TASKLISTID]/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 = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}',
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/tasklists/[TASKLISTID]/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}'
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/tasklists/[TASKLISTID]/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}");
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/tasklists/[TASKLISTID]/comments/1752587000000097046");
request.Content = new StringContent(
@"{""comment"":""The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off."",""attachments"":[23806000073742867]}",
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/tasklists/[TASKLISTID]/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, "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}");
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/tasklists/[TASKLISTID]/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}
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/tasklists/[TASKLISTID]/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}";
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/tasklists/[TASKLISTID]/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}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/tasklists/[TASKLISTID]/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("""{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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 = [@"{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}" 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/tasklists/[TASKLISTID]/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|{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}|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 = @'
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"comment\":\"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.\",\"attachments\":[23806000073742867]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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 = """
{"comment":"The authentication module patch has been reviewed. Regression testing is complete and the fix is ready for QA sign-off.","attachments":[23806000073742867]}
""".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 task list permanently.
OAuth Scope:
ZohoProjects.tasklists.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/tasklists/[TASKLISTID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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 operations related to task list followers within Zoho Projects. Use this API to retrieve followers, follow, or unfollow task lists.
Retrieve the list of followers for a specific task list. Use this API to view who is monitoring updates and changes to a task list in a project.
OAuth Scope:
ZohoProjects.tasklists.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
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/tasklists/[TASKLISTID]/followers?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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/tasklists/[TASKLISTID]/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
Follow a task list to receive updates and notifications. Use this API to subscribe a user to activity on a specific task list within a project.
OAuth Scope:
ZohoProjects.tasklists.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/tasklists/[TASKLISTID]/follow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/follow";
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/tasklists/[TASKLISTID]/follow');
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/tasklists/[TASKLISTID]/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"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/follow";
$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/tasklists/[TASKLISTID]/follow"
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/tasklists/[TASKLISTID]/follow");
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/tasklists/[TASKLISTID]/follow");
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/tasklists/[TASKLISTID]/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);
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/tasklists/[TASKLISTID]/follow"
{: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/tasklists/[TASKLISTID]/follow", 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/tasklists/[TASKLISTID]/follow 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/tasklists/[TASKLISTID]/follow");
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/tasklists/[TASKLISTID]/follow';
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/tasklists/[TASKLISTID]/follow")
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/tasklists/[TASKLISTID]/follow"];
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/tasklists/[TASKLISTID]/follow" 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/tasklists/[TASKLISTID]/follow" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/follow"
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/tasklists/[TASKLISTID]/follow")!
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
Unfollow a task list to stop receiving its notifications. Use this API to unsubscribe a user from activity updates on a specific task list within a project.
OAuth Scope:
ZohoProjects.tasklists.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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/unfollow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/unfollow";
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/tasklists/[TASKLISTID]/unfollow');
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/tasklists/[TASKLISTID]/unfollow")
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/tasklists/[TASKLISTID]/unfollow";
$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/tasklists/[TASKLISTID]/unfollow"
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/tasklists/[TASKLISTID]/unfollow");
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/tasklists/[TASKLISTID]/unfollow");
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/tasklists/[TASKLISTID]/unfollow");
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/tasklists/[TASKLISTID]/unfollow"
{: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/tasklists/[TASKLISTID]/unfollow", 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/tasklists/[TASKLISTID]/unfollow 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/tasklists/[TASKLISTID]/unfollow");
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/tasklists/[TASKLISTID]/unfollow';
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/tasklists/[TASKLISTID]/unfollow")
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/tasklists/[TASKLISTID]/unfollow"];
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/tasklists/[TASKLISTID]/unfollow" 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/tasklists/[TASKLISTID]/unfollow" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/unfollow"
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/tasklists/[TASKLISTID]/unfollow")!
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 operations related to the task list template within Zoho Projects. Use this API to retrieve task lists from a template, get tasks within a task list template, or convert a task list into a template.
Retrieves task lists that are associated with a template in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tasklists.READ
Query Parameter
int
default : 1Enter the page number to retrieve.
int
limit : 1-200default : 100
Specify 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/templates/tasklists?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/templates/tasklists";
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/templates/tasklists');
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/templates/tasklists")
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/templates/tasklists" . "?" . 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/templates/tasklists"
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/templates/tasklists?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/templates/tasklists") { 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/templates/tasklists";
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/templates/tasklists" "?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/templates/tasklists", 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/templates/tasklists?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/templates/tasklists");
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/templates/tasklists';
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/templates/tasklists".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/templates/tasklists?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/templates/tasklists" ^ "?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/templates/tasklists" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/templates/tasklists"
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/templates/tasklists")!
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
Possible Errors
INVALID_TICKET HTTP 401
INVALID_OAUTHTOKEN HTTP 401
Retrieve all tasks within a specific task list template.
OAuth Scope:
ZohoProjects.tasklists.READ
Query Parameter
int
default : 1Enter the page number to retrieve.
int
limit : 1-200default : 100
Specify 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/templates/tasklists/[TASKLISTID]/tasks?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/templates/tasklists/[TASKLISTID]/tasks";
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/templates/tasklists/[TASKLISTID]/tasks');
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/templates/tasklists/[TASKLISTID]/tasks")
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/templates/tasklists/[TASKLISTID]/tasks" . "?" . 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/templates/tasklists/[TASKLISTID]/tasks"
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/templates/tasklists/[TASKLISTID]/tasks?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/templates/tasklists/[TASKLISTID]/tasks") { 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/templates/tasklists/[TASKLISTID]/tasks";
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/templates/tasklists/[TASKLISTID]/tasks" "?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/templates/tasklists/[TASKLISTID]/tasks", 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/templates/tasklists/[TASKLISTID]/tasks?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/templates/tasklists/[TASKLISTID]/tasks");
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/templates/tasklists/[TASKLISTID]/tasks';
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/templates/tasklists/[TASKLISTID]/tasks".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/templates/tasklists/[TASKLISTID]/tasks?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/templates/tasklists/[TASKLISTID]/tasks" ^ "?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/templates/tasklists/[TASKLISTID]/tasks" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/templates/tasklists/[TASKLISTID]/tasks"
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/templates/tasklists/[TASKLISTID]/tasks")!
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
Possible Errors
INVALID_TICKET HTTP 401
INVALID_OAUTHTOKEN HTTP 401
Convert an existing task list into a reusable template.
OAuth Scope:
ZohoProjects.tasklists.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/tasklists/[TASKLISTID]/make-as-template' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/make-as-template";
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/tasklists/[TASKLISTID]/make-as-template');
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/tasklists/[TASKLISTID]/make-as-template")
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/tasklists/[TASKLISTID]/make-as-template";
$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/tasklists/[TASKLISTID]/make-as-template"
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/tasklists/[TASKLISTID]/make-as-template");
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/tasklists/[TASKLISTID]/make-as-template");
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/tasklists/[TASKLISTID]/make-as-template");
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/tasklists/[TASKLISTID]/make-as-template"
{: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/tasklists/[TASKLISTID]/make-as-template", 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/tasklists/[TASKLISTID]/make-as-template 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/tasklists/[TASKLISTID]/make-as-template");
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/tasklists/[TASKLISTID]/make-as-template';
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/tasklists/[TASKLISTID]/make-as-template")
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/tasklists/[TASKLISTID]/make-as-template"];
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/tasklists/[TASKLISTID]/make-as-template" 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/tasklists/[TASKLISTID]/make-as-template" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasklists/[TASKLISTID]/make-as-template"
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/tasklists/[TASKLISTID]/make-as-template")!
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
This module covers task-related operations within Zoho Projects. Use this API to create, copy, move, delete, or get task details, manage baselines, set dependencies, and retrieve status or layout-specific work hour details.
Retrieve all tasks across the Zoho Projects portal. Use this API to fetch tasks from all projects within a portal.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number to retrieve.
int
limit : 1-200default : 100
Enter the number of tasks to retrieve per page.
String
Enter the sort criteria. Accepted values: ASC(field_name) or DESC(field_name).
Available fields :
idnamestart_dateend_datecompletion_percentagecreated_timelast_modified_timecreated_byis_completed
long
Enter the ID of the custom view to apply.
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/tasks?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B4000000000485%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=4000000026001' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"});
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "4000000026001");
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/tasks');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_id', '4000000026001');
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/tasks")
params = {
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "4000000026001"
}
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":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}',
'sort_by' => 'ASC(last_modified_time)',
'view_id' => '4000000026001',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks" . "?" . 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/tasks"
params = {
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}",
"sort_by": "ASC(last_modified_time)",
"view_id": "4000000026001"
}
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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "4000000026001", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks?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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "4000000026001";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/tasks") { 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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "4000000026001", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks";
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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "4000000026001" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks" "?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/tasks", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}")
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("view_id", "4000000026001")
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/tasks?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B4000000000485%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=4000000026001 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/tasks");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "4000000026001");
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/tasks';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}',
'sort_by': 'ASC(last_modified_time)',
'view_id': '4000000026001'
});
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":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}
sort_by = "ASC(last_modified_time)"
view_id = "4000000026001"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/tasks".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "4000000026001")
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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"4000000026001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/tasks?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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}" in
let enc_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
let enc_view_id = Uri.pct_encode "4000000026001" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/tasks" ^ "?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`":[{`"field_name`":`"status`",`"criteria_condition`":`"contains`",`"value`":[4000000000485]}],`"pattern`":`"1`"}"
sort_by = "ASC(last_modified_time)"
view_id = "4000000026001"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks"
params <- list(
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}",
sort_by = "ASC(last_modified_time)",
view_id = "4000000026001"
)
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/tasks")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "view_id", value: "4000000026001")
]
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
FORBIDDEN HTTP 403
Retrieve all tasks from a specific project. Use this API to list tasks within a project.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number to retrieve.
int
limit : 1-200default : 100
Enter the number of tasks to retrieve per page.
String
Enter the sort criteria. Accepted values: ASC(field_name) or DESC(field_name).
Available fields :
idnamestart_dateend_datecompletion_percentagecreated_timelast_modified_timecreated_byis_completed
long
Enter the ID of the custom view to apply.
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/tasks?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B4000000000485%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=4000000026001' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"});
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "4000000026001");
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/tasks');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_id', '4000000026001');
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/tasks")
params = {
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "4000000026001"
}
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":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}',
'sort_by' => 'ASC(last_modified_time)',
'view_id' => '4000000026001',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks" . "?" . 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/tasks"
params = {
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}",
"sort_by": "ASC(last_modified_time)",
"view_id": "4000000026001"
}
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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "4000000026001", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks?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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "4000000026001";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks") { 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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "4000000026001", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks";
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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "4000000026001" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks" "?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/1752587000000097024/tasks", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}")
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("view_id", "4000000026001")
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/tasks?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B4000000000485%5D%7D%5D%2C%22pattern%22%3A%221%22%7D&sort_by=ASC%28last_modified_time%29&view_id=4000000026001 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/tasks");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "4000000026001");
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/tasks';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}',
'sort_by': 'ASC(last_modified_time)',
'view_id': '4000000026001'
});
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":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485]}],"pattern":"1"}
sort_by = "ASC(last_modified_time)"
view_id = "4000000026001"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/tasks".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "4000000026001")
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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"4000000026001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks?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\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}" in
let enc_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
let enc_view_id = Uri.pct_encode "4000000026001" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks" ^ "?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`":[{`"field_name`":`"status`",`"criteria_condition`":`"contains`",`"value`":[4000000000485]}],`"pattern`":`"1`"}"
sort_by = "ASC(last_modified_time)"
view_id = "4000000026001"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks" + "?" + $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/tasks"
params <- list(
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}",
sort_by = "ASC(last_modified_time)",
view_id = "4000000026001"
)
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/tasks")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485]}],\"pattern\":\"1\"}"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "view_id", value: "4000000026001")
]
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
FORBIDDEN HTTP 403
Retrieve the details of a specific task in a project. Use this API to fetch metadata such as assignee, status, priority, and dates for a given task.
OAuth Scope:
ZohoProjects.tasks.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/tasks/1752587000000097101' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101";
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/tasks/1752587000000097101');
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/tasks/1752587000000097101")
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/tasks/1752587000000097101";
$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/tasks/1752587000000097101"
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/tasks/1752587000000097101");
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/tasks/1752587000000097101");
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/tasks/1752587000000097101");
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/tasks/1752587000000097101"
{: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/tasks/1752587000000097101", 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/tasks/1752587000000097101 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/tasks/1752587000000097101");
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/tasks/1752587000000097101';
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/tasks/1752587000000097101")
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/tasks/1752587000000097101"];
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/tasks/1752587000000097101" 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/tasks/1752587000000097101" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101"
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/tasks/1752587000000097101")!
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
FORBIDDEN HTTP 403
Add a new task to a project.
OAuth Scope:
ZohoProjects.tasks.CREATE
Parameter
JSONObject
Enter the task list details.Uses the general task list when task list details are not provided;To create one, use the Create Default Task List API.
JSONObject
Enter the parent task details to create this task as a subtask.
String
requiredmax length : 10000
Enter the name of the task.
String
max length : 80000Enter the description of the task.
JSONObject
max length : 1000Enter the status of the task. Defaults to open if not provided.
String
Specify the priority of the task. Accepted values: none, low, medium, high
String
Enter the start date of the task 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
String
Enter the end date of the task 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
int
Enter the completion percentage of the task.
String
Specify the billing type for the task. Accepted values: none, billable, non_billable
JSONArray
max length : 10000array size : 0-10
Enter the IDs of the files to attach to the task.
JSONObject
max length : 100000Enter the owner and work hour details for the task.
String
Enter the value for a task custom field. Replace <field_name> with the custom field's API name in snake_case, as listed in the Custom Fields Guide. Note: The type is shown as String by default since most basic custom fields accept string values. The actual expected value format and input structure depend on the custom field type. Refer to the Custom Fields Guide for details.
Request Example
- 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/tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks";
params = Map();
params.put("tasklist", {"id":"4000000062001"});
params.put("parental_info", {"parent_task_id":"-"});
params.put("name", "Set Up CI/CD Pipeline for Staging Environment");
params.put("description", "Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.");
params.put("status", {"id":"4000000062001"});
params.put("priority", "-");
params.put("start_date", "2024-12-16T09:00:00.000Z");
params.put("end_date", "2024-12-19T18:00:00.000Z");
params.put("duration", {"value":[4000000000485],"type":"days"});
params.put("completion_percentage", "-");
params.put("billing_type", "-");
params.put("attachments", [4000000094003]);
params.put("owners_and_work", {"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"});
params.put("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("teams", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("recurrence", {"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}});
params.put("budget_info", {"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"});
params.put("<field_name>", "-");
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/tasks');
const payload = JSON.stringify({"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"});
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/tasks")
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 = '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}',
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/tasks"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}'
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/tasks");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"<field_name>\":\"-\"}");
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/tasks");
request.Content = new StringContent(
@"{""tasklist"":{""id"":""4000000062001""},""parental_info"":{""parent_task_id"":""-""},""name"":""Set Up CI/CD Pipeline for Staging Environment"",""description"":""Configure and validate the CI/CD pipeline for the staging environment prior to production deployment."",""status"":{""id"":""4000000062001""},""priority"":""-"",""start_date"":""2024-12-16T09:00:00.000Z"",""end_date"":""2024-12-19T18:00:00.000Z"",""duration"":{""value"":[4000000000485],""type"":""days""},""completion_percentage"":""-"",""billing_type"":""-"",""attachments"":[4000000094003],""owners_and_work"":{""owners"":[{""add"":[{""zpuid"":""4000000002055"",""work_values"":""-""}],""remove"":[{""zpuid"":""4000000002055"",""work_values"":""-""}],""zpuid"":""4000000002055"",""work_values"":""-""}],""work_type"":""-"",""unit"":""days"",""copy_task_duration"":""-""},""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""teams"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""recurrence"":{""trigger_type"":""-"",""retain_config"":{""comments"":""Test Comment"",""billing_type"":""-"",""followers"":""-"",""description"":""Configure and validate the CI/CD pipeline for the staging environment prior to production deployment."",""subtasks"":""-"",""tags"":""-"",""attachments"":[4000000094003],""teams"":""-""},""date_based"":{""field_name"":""status"",""repetative_type"":""-"",""time_span"":""-"",""ends_after_type"":""-"",""ends_after_value"":""-"",""skip_type"":""-"",""duration_type"":""days"",""no_of_duration"":""2""},""scheduler_based"":{""repetative_type"":""-"",""time_span"":""-"",""ends_after_type"":""-"",""ends_after_value"":""-"",""skip_type"":""-"",""time"":""22:00"",""days_of_week"":""-"",""months_of_year"":""-"",""repeat_on_type"":""-"",""repeat_on_value"":""-""}},""budget_info"":{""rate_per_hour"":""-"",""budget"":""-"",""threshold"":""-"",""revenue_budget"":""-"",""cost_rate_per_hour"":""-""},""<field_name>"":""-""}",
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/tasks");
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, "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"<field_name>\":\"-\"}");
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/tasks"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"<field_name>\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"<field_name>\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks", 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/tasks HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}
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/tasks");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI\/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI\/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI\/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"<field_name>\":\"-\"}";
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/tasks';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}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/tasks")
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("""{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks"];
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 = [@"{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"<field_name>\":\"-\"}" 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/tasks" 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|{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}|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 = @'
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"<field_name>\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks")!
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 = """
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055","work_values":"-"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"<field_name>":"-"}
""".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
MANDATORY_PARAMETER_MISSING HTTP 400
INVALID_DURATION HTTP 400
INVALID_DATE_RANGE HTTP 400
INVALID_PARAMETER_VALUE HTTP 400
MAXTASKSPERTASKLIST_REACHED HTTP 403
INVALID_CUSTOM_FIELD HTTP 400
INVALID_OWNER HTTP 400
PROJECT_TEMPLATE_SUPPORT HTTP 403
INVALID_TASKLIST HTTP 400
Modify details of the task in a project.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
JSONObject
Enter the parent task details to convert this task into a subtask.
String
max length : 10000Enter the name of the task.
String
max length : 80000Enter the description of the task.
JSONObject
max length : 1000Enter the status of the task. Defaults to open if not provided.
String
Specify the priority of the task. Accepted values: none, low, medium, high
String
Enter the start date of the task 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.
String
Enter the end date of the task 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.
int
Enter the completion percentage of the task.
String
Specify the billing type for the task. Accepted values: none, billable, non_billable
JSONArray
max length : 10000array size : 0-10
Enter the IDs of the files to attach to the task.
JSONObject
max length : 100000Enter the owner and work hour details for the task.
JSONArray
max length : 100000array size : 0-100
Enter the tags to associate with the task.
JSONArray
max length : 100000array size : 0-100
Enter the teams to associate with the task.
JSONObject
Enter the recurrence details for the task. To remove recurrence from the task, pass an empty object.
boolean
default : falseSpecify whether to forcefully remove the lag from task dependencies. Accepted values: true, false
String
Enter the color of the task.
String
Enter the value for a task custom field. Replace <field_name> with the custom field's API name in snake_case, as listed in the Custom Fields Guide. Note: The type is shown as String by default since most basic custom fields accept string values. The actual expected value format and input structure depend on the custom field type. Refer to the Custom Fields Guide for details.
Request Example
- 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/tasks/1752587000000097101' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101";
params = Map();
params.put("tasklist", {"id":"4000000062001"});
params.put("parental_info", {"parent_task_id":"-"});
params.put("name", "Set Up CI/CD Pipeline for Staging Environment");
params.put("description", "Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.");
params.put("status", {"id":"4000000062001"});
params.put("priority", "-");
params.put("start_date", "2024-12-16T09:00:00.000Z");
params.put("end_date", "2024-12-19T18:00:00.000Z");
params.put("duration", {"value":[4000000000485],"type":"days"});
params.put("completion_percentage", "-");
params.put("billing_type", "-");
params.put("attachments", [4000000094003]);
params.put("owners_and_work", {"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"});
params.put("tags", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("teams", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}]);
params.put("recurrence", {"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}});
params.put("reminder", {"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]});
params.put("budget_info", {"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"});
params.put("remove_dependency_lag", "-");
params.put("color", "#67a0ff");
params.put("<field_name>", "-");
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/tasks/1752587000000097101');
const payload = JSON.stringify({"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"});
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/tasks/1752587000000097101")
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 = '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}',
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/tasks/1752587000000097101"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}'
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/tasks/1752587000000097101");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\",\"refresh_business_hours\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"reminder\":{\"reminder_criteria\":\"on\",\"field_type\":\"start_date\",\"custom_date\":\"2023-12-20\",\"no_of_duration\":\"2\",\"time\":\"22:00\",\"duration_type\":\"days\",\"emailtemplate_id\":\"4000000008003\",\"reminder_notify_users\":[{\"type\":\"days\",\"values\":\"-\"}]},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"hourly_budget\":\"-\",\"hourly_budget_threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"remove_dependency_lag\":\"-\",\"color\":\"#67a0ff\",\"<field_name>\":\"-\"}");
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/tasks/1752587000000097101");
request.Content = new StringContent(
@"{""tasklist"":{""id"":""4000000062001""},""parental_info"":{""parent_task_id"":""-""},""name"":""Set Up CI/CD Pipeline for Staging Environment"",""description"":""Configure and validate the CI/CD pipeline for the staging environment prior to production deployment."",""status"":{""id"":""4000000062001""},""priority"":""-"",""start_date"":""2024-12-16T09:00:00.000Z"",""end_date"":""2024-12-19T18:00:00.000Z"",""duration"":{""value"":[4000000000485],""type"":""days""},""completion_percentage"":""-"",""billing_type"":""-"",""attachments"":[4000000094003],""owners_and_work"":{""owners"":[{""add"":[{""zpuid"":""4000000002055"",""work_values"":""-""}],""remove"":[{""zpuid"":""4000000002055""}],""zpuid"":""4000000002055"",""work_values"":""-""}],""work_type"":""-"",""unit"":""days"",""copy_task_duration"":""-"",""refresh_business_hours"":""-""},""tags"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""teams"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""id"":""4000000062001""}],""id"":""4000000062001""}],""recurrence"":{""trigger_type"":""-"",""retain_config"":{""comments"":""Test Comment"",""billing_type"":""-"",""followers"":""-"",""description"":""Configure and validate the CI/CD pipeline for the staging environment prior to production deployment."",""subtasks"":""-"",""tags"":""-"",""attachments"":[4000000094003],""teams"":""-""},""date_based"":{""field_name"":""status"",""repetative_type"":""-"",""time_span"":""-"",""ends_after_type"":""-"",""ends_after_value"":""-"",""skip_type"":""-"",""duration_type"":""days"",""no_of_duration"":""2""},""scheduler_based"":{""repetative_type"":""-"",""time_span"":""-"",""ends_after_type"":""-"",""ends_after_value"":""-"",""skip_type"":""-"",""time"":""22:00"",""days_of_week"":""-"",""months_of_year"":""-"",""repeat_on_type"":""-"",""repeat_on_value"":""-""}},""reminder"":{""reminder_criteria"":""on"",""field_type"":""start_date"",""custom_date"":""2023-12-20"",""no_of_duration"":""2"",""time"":""22:00"",""duration_type"":""days"",""emailtemplate_id"":""4000000008003"",""reminder_notify_users"":[{""type"":""days"",""values"":""-""}]},""budget_info"":{""rate_per_hour"":""-"",""budget"":""-"",""threshold"":""-"",""hourly_budget"":""-"",""hourly_budget_threshold"":""-"",""revenue_budget"":""-"",""cost_rate_per_hour"":""-""},""remove_dependency_lag"":""-"",""color"":""#67a0ff"",""<field_name>"":""-""}",
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/tasks/1752587000000097101");
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, "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\",\"refresh_business_hours\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"reminder\":{\"reminder_criteria\":\"on\",\"field_type\":\"start_date\",\"custom_date\":\"2023-12-20\",\"no_of_duration\":\"2\",\"time\":\"22:00\",\"duration_type\":\"days\",\"emailtemplate_id\":\"4000000008003\",\"reminder_notify_users\":[{\"type\":\"days\",\"values\":\"-\"}]},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"hourly_budget\":\"-\",\"hourly_budget_threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"remove_dependency_lag\":\"-\",\"color\":\"#67a0ff\",\"<field_name>\":\"-\"}");
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/tasks/1752587000000097101"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\",\"refresh_business_hours\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"reminder\":{\"reminder_criteria\":\"on\",\"field_type\":\"start_date\",\"custom_date\":\"2023-12-20\",\"no_of_duration\":\"2\",\"time\":\"22:00\",\"duration_type\":\"days\",\"emailtemplate_id\":\"4000000008003\",\"reminder_notify_users\":[{\"type\":\"days\",\"values\":\"-\"}]},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"hourly_budget\":\"-\",\"hourly_budget_threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"remove_dependency_lag\":\"-\",\"color\":\"#67a0ff\",\"<field_name>\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\",\"refresh_business_hours\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"reminder\":{\"reminder_criteria\":\"on\",\"field_type\":\"start_date\",\"custom_date\":\"2023-12-20\",\"no_of_duration\":\"2\",\"time\":\"22:00\",\"duration_type\":\"days\",\"emailtemplate_id\":\"4000000008003\",\"reminder_notify_users\":[{\"type\":\"days\",\"values\":\"-\"}]},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"hourly_budget\":\"-\",\"hourly_budget_threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"remove_dependency_lag\":\"-\",\"color\":\"#67a0ff\",\"<field_name>\":\"-\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101", 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/tasks/1752587000000097101 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}
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/tasks/1752587000000097101");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI\/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI\/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\",\"refresh_business_hours\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI\/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"reminder\":{\"reminder_criteria\":\"on\",\"field_type\":\"start_date\",\"custom_date\":\"2023-12-20\",\"no_of_duration\":\"2\",\"time\":\"22:00\",\"duration_type\":\"days\",\"emailtemplate_id\":\"4000000008003\",\"reminder_notify_users\":[{\"type\":\"days\",\"values\":\"-\"}]},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"hourly_budget\":\"-\",\"hourly_budget_threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"remove_dependency_lag\":\"-\",\"color\":\"#67a0ff\",\"<field_name>\":\"-\"}";
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/tasks/1752587000000097101';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}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/tasks/1752587000000097101")
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("""{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101"];
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 = [@"{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\",\"refresh_business_hours\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"reminder\":{\"reminder_criteria\":\"on\",\"field_type\":\"start_date\",\"custom_date\":\"2023-12-20\",\"no_of_duration\":\"2\",\"time\":\"22:00\",\"duration_type\":\"days\",\"emailtemplate_id\":\"4000000008003\",\"reminder_notify_users\":[{\"type\":\"days\",\"values\":\"-\"}]},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"hourly_budget\":\"-\",\"hourly_budget_threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"remove_dependency_lag\":\"-\",\"color\":\"#67a0ff\",\"<field_name>\":\"-\"}" 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/tasks/1752587000000097101" 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|{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}|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 = @'
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"tasklist\":{\"id\":\"4000000062001\"},\"parental_info\":{\"parent_task_id\":\"-\"},\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"status\":{\"id\":\"4000000062001\"},\"priority\":\"-\",\"start_date\":\"2024-12-16T09:00:00.000Z\",\"end_date\":\"2024-12-19T18:00:00.000Z\",\"duration\":{\"value\":[4000000000485],\"type\":\"days\"},\"completion_percentage\":\"-\",\"billing_type\":\"-\",\"attachments\":[4000000094003],\"owners_and_work\":{\"owners\":[{\"add\":[{\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\",\"work_values\":\"-\"}],\"work_type\":\"-\",\"unit\":\"days\",\"copy_task_duration\":\"-\",\"refresh_business_hours\":\"-\"},\"tags\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"teams\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}],\"id\":\"4000000062001\"}],\"recurrence\":{\"trigger_type\":\"-\",\"retain_config\":{\"comments\":\"Test Comment\",\"billing_type\":\"-\",\"followers\":\"-\",\"description\":\"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.\",\"subtasks\":\"-\",\"tags\":\"-\",\"attachments\":[4000000094003],\"teams\":\"-\"},\"date_based\":{\"field_name\":\"status\",\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"duration_type\":\"days\",\"no_of_duration\":\"2\"},\"scheduler_based\":{\"repetative_type\":\"-\",\"time_span\":\"-\",\"ends_after_type\":\"-\",\"ends_after_value\":\"-\",\"skip_type\":\"-\",\"time\":\"22:00\",\"days_of_week\":\"-\",\"months_of_year\":\"-\",\"repeat_on_type\":\"-\",\"repeat_on_value\":\"-\"}},\"reminder\":{\"reminder_criteria\":\"on\",\"field_type\":\"start_date\",\"custom_date\":\"2023-12-20\",\"no_of_duration\":\"2\",\"time\":\"22:00\",\"duration_type\":\"days\",\"emailtemplate_id\":\"4000000008003\",\"reminder_notify_users\":[{\"type\":\"days\",\"values\":\"-\"}]},\"budget_info\":{\"rate_per_hour\":\"-\",\"budget\":\"-\",\"threshold\":\"-\",\"hourly_budget\":\"-\",\"hourly_budget_threshold\":\"-\",\"revenue_budget\":\"-\",\"cost_rate_per_hour\":\"-\"},\"remove_dependency_lag\":\"-\",\"color\":\"#67a0ff\",\"<field_name>\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101")!
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 = """
{"tasklist":{"id":"4000000062001"},"parental_info":{"parent_task_id":"-"},"name":"Set Up CI/CD Pipeline for Staging Environment","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","status":{"id":"4000000062001"},"priority":"-","start_date":"2024-12-16T09:00:00.000Z","end_date":"2024-12-19T18:00:00.000Z","duration":{"value":[4000000000485],"type":"days"},"completion_percentage":"-","billing_type":"-","attachments":[4000000094003],"owners_and_work":{"owners":[{"add":[{"zpuid":"4000000002055","work_values":"-"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055","work_values":"-"}],"work_type":"-","unit":"days","copy_task_duration":"-","refresh_business_hours":"-"},"tags":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"teams":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}],"id":"4000000062001"}],"recurrence":{"trigger_type":"-","retain_config":{"comments":"Test Comment","billing_type":"-","followers":"-","description":"Configure and validate the CI/CD pipeline for the staging environment prior to production deployment.","subtasks":"-","tags":"-","attachments":[4000000094003],"teams":"-"},"date_based":{"field_name":"status","repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","duration_type":"days","no_of_duration":"2"},"scheduler_based":{"repetative_type":"-","time_span":"-","ends_after_type":"-","ends_after_value":"-","skip_type":"-","time":"22:00","days_of_week":"-","months_of_year":"-","repeat_on_type":"-","repeat_on_value":"-"}},"reminder":{"reminder_criteria":"on","field_type":"start_date","custom_date":"2023-12-20","no_of_duration":"2","time":"22:00","duration_type":"days","emailtemplate_id":"4000000008003","reminder_notify_users":[{"type":"days","values":"-"}]},"budget_info":{"rate_per_hour":"-","budget":"-","threshold":"-","hourly_budget":"-","hourly_budget_threshold":"-","revenue_budget":"-","cost_rate_per_hour":"-"},"remove_dependency_lag":"-","color":"#67a0ff","<field_name>":"-"}
""".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_STATUS HTTP 400
MANDATORY_PARAMETER_MISSING HTTP 400
OPENED_TASK_CANNOT_UPDATE_COMPLETED_DATE HTTP 403
INVALID_DATE_RANGE HTTP 400
CANNOT_CLOSE_TASK HTTP 409
RESOURCE_NOT_FOUND HTTP 404
INVALID_COMPLETION_PERCENTAGE HTTP 400
INVALID_OWNER HTTP 400
CANNOT_OPEN_CHILD_TASK HTTP 409
FIELD_PERMISSION_DENIED HTTP 403
Remove a task from the project permanently.
OAuth Scope:
ZohoProjects.tasks.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/tasks/1752587000000097101' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101";
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/tasks/1752587000000097101');
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/tasks/1752587000000097101")
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/tasks/1752587000000097101";
$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/tasks/1752587000000097101"
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/tasks/1752587000000097101");
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/tasks/1752587000000097101");
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/tasks/1752587000000097101");
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/tasks/1752587000000097101"
{: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/tasks/1752587000000097101", 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/tasks/1752587000000097101 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/tasks/1752587000000097101");
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/tasks/1752587000000097101';
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/tasks/1752587000000097101")
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/tasks/1752587000000097101"];
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/tasks/1752587000000097101" 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/tasks/1752587000000097101" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101"
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/tasks/1752587000000097101")!
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
Clone a task to create multiple instances within the project.
OAuth Scope:
ZohoProjects.tasks.CREATE
Parameter
int
requiredEnter the number of instances to be created.
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/tasks/1752587000000097101/clone' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'no_of_instances = "1"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone";
params = Map();
params.put("no_of_instances", "1");
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/tasks/1752587000000097101/clone');
url.searchParams.append('no_of_instances', '1');
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/tasks/1752587000000097101/clone")
params = {
"no_of_instances" => "1"
}
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 = [
'no_of_instances' => '1',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone" . "?" . 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/tasks/1752587000000097101/clone"
params = {
"no_of_instances": "1"
}
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_no_of_instances = curl_easy_escape(curl, "1", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone?no_of_instances=%s", enc_no_of_instances);
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_no_of_instances);
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["no_of_instances"] = "1";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone") { 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_no_of_instances = curl_easy_escape(curl, "1", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone";
url += "?no_of_instances=" + std::string(enc_no_of_instances);
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_no_of_instances);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-no_of_instances (java.net.URLEncoder/encode "1" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone" "?no_of_instances=" enc-no_of_instances)]
(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/tasks/1752587000000097101/clone", nil)
q := req.URL.Query()
q.Add("no_of_instances", "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))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone?no_of_instances=1 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/tasks/1752587000000097101/clone");
uriBuilder.addParameter("no_of_instances", "1");
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/tasks/1752587000000097101/clone';
const params = new URLSearchParams({
'no_of_instances': '1'
});
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));
no_of_instances = "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/tasks/1752587000000097101/clone".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("no_of_instances", "1")
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 *encodedNo_of_instances = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone?no_of_instances=%@", encodedNo_of_instances];
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_no_of_instances = Uri.pct_encode "1" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone" ^ "?no_of_instances=" ^ enc_no_of_instances) 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 = @{
no_of_instances = "1"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/clone" + "?" + $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/tasks/1752587000000097101/clone"
params <- list(
no_of_instances = "1"
)
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/tasks/1752587000000097101/clone")!
components.queryItems = [
URLQueryItem(name: "no_of_instances", value: "1")
]
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_COPY_SUBTASK HTTP 403
Move a task to a different task list within a project.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
long
requiredEnter the ID of the destination task list.
JSONArray
Enter the status mapping details to apply when moving the task to the destination task list.
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/tasks/1752587000000097101/move' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/move";
params = Map();
params.put("target_tasklist_id", "-");
params.put("status_mapping", [{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]);
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/tasks/1752587000000097101/move');
const payload = JSON.stringify({"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]});
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/tasks/1752587000000097101/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 = '{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/move";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}',
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/tasks/1752587000000097101/move"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}'
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/tasks/1752587000000097101/move");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"target_tasklist_id\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"}}]}");
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/tasks/1752587000000097101/move");
request.Content = new StringContent(
@"{""target_tasklist_id"":""-"",""status_mapping"":[{""old_status"":{""id"":""4000000062001"",""name"":""Set Up CI/CD Pipeline for Staging Environment"",""color"":""#67a0ff"",""type"":""days""},""new_status"":{""id"":""4000000062001"",""name"":""Set Up CI/CD Pipeline for Staging Environment"",""color"":""#67a0ff"",""type"":""days""}}]}",
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/tasks/1752587000000097101/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, "{\"target_tasklist_id\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"}}]}");
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/tasks/1752587000000097101/move"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"target_tasklist_id\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"}}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"target_tasklist_id\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"}}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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/tasks/1752587000000097101/move HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}
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/tasks/1752587000000097101/move");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"target_tasklist_id\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI\/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI\/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"}}]}";
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/tasks/1752587000000097101/move';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}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/tasks/1752587000000097101/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("""{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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 = [@"{\"target_tasklist_id\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"}}]}" 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/tasks/1752587000000097101/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|{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}|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 = @'
{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/move" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/move"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"target_tasklist_id\":\"-\",\"status_mapping\":[{\"old_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"},\"new_status\":{\"id\":\"4000000062001\",\"name\":\"Set Up CI/CD Pipeline for Staging Environment\",\"color\":\"#67a0ff\",\"type\":\"days\"}}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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 = """
{"target_tasklist_id":"-","status_mapping":[{"old_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"},"new_status":{"id":"4000000062001","name":"Set Up CI/CD Pipeline for Staging Environment","color":"#67a0ff","type":"days"}}]}
""".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 the order of tasks within a task list.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
long
Enter the ID of the task before which this task should be placed. Provide only one of before, after, or position.
long
Enter the ID of the task after which this task should be placed. Provide only one of before, after, or position.
String
Relative placement of the task within the task list. Accepted values: first or last. Ignored if before or after is specified (those take precedence). Applies only to top-level tasks; has no effect on subtasks. If none of before, after, or position are specified, the task retains its current position.
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/tasks/1752587000000097101/reorder' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/reorder";
params = Map();
params.put("before", "1752587000000097101");
params.put("after", "1752587000000097101");
params.put("position", "first");
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/tasks/1752587000000097101/reorder');
const payload = JSON.stringify({"before":"1752587000000097101","after":"1752587000000097101","position":"first"});
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/tasks/1752587000000097101/reorder")
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 = '{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/reorder";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}',
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/tasks/1752587000000097101/reorder"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}'
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/tasks/1752587000000097101/reorder");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"before\":\"1752587000000097101\",\"after\":\"1752587000000097101\",\"position\":\"first\"}");
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/tasks/1752587000000097101/reorder");
request.Content = new StringContent(
@"{""before"":""1752587000000097101"",""after"":""1752587000000097101"",""position"":""first""}",
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/tasks/1752587000000097101/reorder");
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, "{\"before\":\"1752587000000097101\",\"after\":\"1752587000000097101\",\"position\":\"first\"}");
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/tasks/1752587000000097101/reorder"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"before\":\"1752587000000097101\",\"after\":\"1752587000000097101\",\"position\":\"first\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"before\":\"1752587000000097101\",\"after\":\"1752587000000097101\",\"position\":\"first\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/reorder", 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/tasks/1752587000000097101/reorder HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}
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/tasks/1752587000000097101/reorder");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"before\":\"1752587000000097101\",\"after\":\"1752587000000097101\",\"position\":\"first\"}";
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/tasks/1752587000000097101/reorder';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"before":"1752587000000097101","after":"1752587000000097101","position":"first"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}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/tasks/1752587000000097101/reorder")
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("""{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/reorder"];
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 = [@"{\"before\":\"1752587000000097101\",\"after\":\"1752587000000097101\",\"position\":\"first\"}" 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/tasks/1752587000000097101/reorder" 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|{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}|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 = @'
{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/reorder" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/reorder"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"before\":\"1752587000000097101\",\"after\":\"1752587000000097101\",\"position\":\"first\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/reorder")!
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 = """
{"before":"1752587000000097101","after":"1752587000000097101","position":"first"}
""".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 total number of tasks in a project.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
String
Enter the ID of the custom view to apply.
String
Enter the filter criteria as a criteria string.
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/tasks/count?view_id=4000000026001&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B4000000000485%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22status%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%22%7D&criteria=-' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count";
params = Map();
params.put("view_id", "4000000026001");
params.put("filter", {"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485],"relative_columns":[{"cfid":"4000000000242","field_name":"status","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1"});
params.put("criteria", "-");
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/tasks/count');
url.searchParams.append('view_id', '4000000026001');
url.searchParams.append('"filter"', '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485],"relative_columns":[{"cfid":"4000000000242","field_name":"status","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1"}');
url.searchParams.append('criteria', '-');
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/tasks/count")
params = {
"view_id" => "4000000026001",
""filter"" => "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}",
"criteria" => "-"
}
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' => '4000000026001',
'"filter"' => '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485],"relative_columns":[{"cfid":"4000000000242","field_name":"status","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1"}',
'criteria' => '-',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count"
params = {
"view_id": "4000000026001",
""filter"": "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}",
"criteria": "-"
}
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, "4000000026001", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}", 0);
char *enc_criteria = curl_easy_escape(curl, "-", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count?view_id=%s&\"filter\"=%s&criteria=%s", enc_view_id, enc_"filter", enc_criteria);
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_"filter");
curl_free(enc_criteria);
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"] = "4000000026001";
query[""filter""] = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}";
query["criteria"] = "-";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_view_id = curl_easy_escape(curl, "4000000026001", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}", 0);
char* enc_criteria = curl_easy_escape(curl, "-", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count";
url += "?view_id=" + std::string(enc_view_id);
url += "&"filter"=" + std::string(enc_"filter");
url += "&criteria=" + std::string(enc_criteria);
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_"filter");
curl_free(enc_criteria);
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 "4000000026001" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}" "UTF-8")
enc-criteria (java.net.URLEncoder/encode "-" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count" "?view_id=" enc-view_id "&"filter"=" enc-"filter" "&criteria=" enc-criteria)]
(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/tasks/count", nil)
q := req.URL.Query()
q.Add("view_id", "4000000026001")
q.Add(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}")
q.Add("criteria", "-")
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/tasks/count?view_id=4000000026001&%22filter%22=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22status%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B4000000000485%5D%2C%22relative_columns%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22field_name%22%3A%22status%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%22%7D&criteria=- 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/tasks/count");
uriBuilder.addParameter("view_id", "4000000026001");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}");
uriBuilder.addParameter("criteria", "-");
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/tasks/count';
const params = new URLSearchParams({
'view_id': '4000000026001',
'"filter"': '{"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485],"relative_columns":[{"cfid":"4000000000242","field_name":"status","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1"}',
'criteria': '-'
});
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 = "4000000026001"
"filter" = {"criteria":[{"field_name":"status","criteria_condition":"contains","value":[4000000000485],"relative_columns":[{"cfid":"4000000000242","field_name":"status","offset":"1","unit":"days","prior":"before","is_this_today":"-"}]}],"pattern":"1"}
criteria = - 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/tasks/count".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("view_id", "4000000026001")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}")
urlBuilder.addQueryParameter("criteria", "-")
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 = [@"4000000026001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedCriteria = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count?view_id=%@&"filter"=%@&criteria=%@", encodedView_id, encoded"filter", encodedCriteria];
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 "4000000026001" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}" in
let enc_criteria = Uri.pct_encode "-" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count" ^ "?view_id=" ^ enc_view_id ^ "&"filter"=" ^ enc_"filter" ^ "&criteria=" ^ enc_criteria) 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 = "4000000026001"
"filter" = "{`"criteria`":[{`"field_name`":`"status`",`"criteria_condition`":`"contains`",`"value`":[4000000000485],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"field_name`":`"status`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`",`"is_this_today`":`"-`"}]}],`"pattern`":`"1`"}"
criteria = "-"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/count" + "?" + $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/tasks/count"
params <- list(
view_id = "4000000026001",
"filter" = "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}",
criteria = "-"
)
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/tasks/count")!
components.queryItems = [
URLQueryItem(name: "view_id", value: "4000000026001"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"field_name\":\"status\",\"criteria_condition\":\"contains\",\"value\":[4000000000485],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"status\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":\"-\"}]}],\"pattern\":\"1\"}"),
URLQueryItem(name: "criteria", 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
This module covers operations related to task follower within Zoho Projects. Use this API to retrieve task followers, follow a task, add followers, or unfollow a task.
Retrieve the list of followers for a task.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
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/tasks/1752587000000097101/followers?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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
Follow a task to receive updates and notifications.
OAuth Scope:
ZohoProjects.tasks.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/tasks/1752587000000097101/follow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/follow";
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/tasks/1752587000000097101/follow');
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/tasks/1752587000000097101/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"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/follow";
$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/tasks/1752587000000097101/follow"
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/tasks/1752587000000097101/follow");
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/tasks/1752587000000097101/follow");
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/tasks/1752587000000097101/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);
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/tasks/1752587000000097101/follow"
{: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/tasks/1752587000000097101/follow", 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/tasks/1752587000000097101/follow 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/tasks/1752587000000097101/follow");
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/tasks/1752587000000097101/follow';
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/tasks/1752587000000097101/follow")
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/tasks/1752587000000097101/follow"];
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/tasks/1752587000000097101/follow" 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/tasks/1752587000000097101/follow" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/follow"
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/tasks/1752587000000097101/follow")!
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
Add one or more followers to a task.
OAuth Scope:
ZohoProjects.tasks.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/projects/1752587000000097024/tasks/1752587000000097101/followers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"followers":[{"zpuid":"4000000002055"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/followers";
params = Map();
params.put("followers", [{"zpuid":"4000000002055"}]);
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/tasks/1752587000000097101/followers');
const payload = JSON.stringify({"followers":[{"zpuid":"4000000002055"}]});
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/tasks/1752587000000097101/followers")
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":[{"zpuid":"4000000002055"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/followers";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"followers":[{"zpuid":"4000000002055"}]}',
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/tasks/1752587000000097101/followers"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"followers":[{"zpuid":"4000000002055"}]}'
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/tasks/1752587000000097101/followers");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"followers\":[{\"zpuid\":\"4000000002055\"}]}");
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/tasks/1752587000000097101/followers");
request.Content = new StringContent(
@"{""followers"":[{""zpuid"":""4000000002055""}]}",
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/tasks/1752587000000097101/followers");
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\":[{\"zpuid\":\"4000000002055\"}]}");
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/tasks/1752587000000097101/followers"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"followers\":[{\"zpuid\":\"4000000002055\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"followers\":[{\"zpuid\":\"4000000002055\"}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/followers", 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/tasks/1752587000000097101/followers HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"followers":[{"zpuid":"4000000002055"}]}
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/tasks/1752587000000097101/followers");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"followers\":[{\"zpuid\":\"4000000002055\"}]}";
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/tasks/1752587000000097101/followers';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"followers":[{"zpuid":"4000000002055"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"followers":[{"zpuid":"4000000002055"}]}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/tasks/1752587000000097101/followers")
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":[{"zpuid":"4000000002055"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/followers"];
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\":[{\"zpuid\":\"4000000002055\"}]}" 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/tasks/1752587000000097101/followers" 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":[{"zpuid":"4000000002055"}]}|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":[{"zpuid":"4000000002055"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/followers" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/followers"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"followers\":[{\"zpuid\":\"4000000002055\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/followers")!
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":[{"zpuid":"4000000002055"}]}
""".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
Unfollow a task to unsubscribe from its updates.
OAuth Scope:
ZohoProjects.tasks.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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/unfollow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/unfollow";
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/tasks/1752587000000097101/unfollow');
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/tasks/1752587000000097101/unfollow")
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/tasks/1752587000000097101/unfollow";
$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/tasks/1752587000000097101/unfollow"
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/tasks/1752587000000097101/unfollow");
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/tasks/1752587000000097101/unfollow");
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/tasks/1752587000000097101/unfollow");
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/tasks/1752587000000097101/unfollow"
{: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/tasks/1752587000000097101/unfollow", 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/tasks/1752587000000097101/unfollow 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/tasks/1752587000000097101/unfollow");
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/tasks/1752587000000097101/unfollow';
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/tasks/1752587000000097101/unfollow")
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/tasks/1752587000000097101/unfollow"];
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/tasks/1752587000000097101/unfollow" 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/tasks/1752587000000097101/unfollow" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/unfollow"
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/tasks/1752587000000097101/unfollow")!
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
This module covers operations related to task comments within Zoho Projects. Use this API to retrieve, add, update, or delete comments and manage comment attachments in a Task .
Retrieve all comments from a task. Use this API to fetch the full comment history of a task for review or display.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
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 :
created_timeupdated_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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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
Add a new comment to a task. Use this API to post remarks, feedback, or updates on a task to keep collaborators informed.
OAuth Scope:
ZohoProjects.tasks.CREATE
Parameter
String
requiredmax length : 500000
Enter the content of the comment.
JSONArray
max length : 10000array size : 0-10
Enter the IDs of the files to attach to the comment. You can use this API to upload attachments and get the attachment 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/projects/1752587000000097024/tasks/1752587000000097101/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments";
params = Map();
params.put("comment", "Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.");
params.put("attachments", [4000000094003]);
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/tasks/1752587000000097101/comments');
const payload = JSON.stringify({"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]});
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/tasks/1752587000000097101/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 = '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}',
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/tasks/1752587000000097101/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}'
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/tasks/1752587000000097101/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}");
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/tasks/1752587000000097101/comments");
request.Content = new StringContent(
@"{""comment"":""Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD."",""attachments"":[4000000094003]}",
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/tasks/1752587000000097101/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, "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}");
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/tasks/1752587000000097101/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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/tasks/1752587000000097101/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}
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/tasks/1752587000000097101/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}";
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/tasks/1752587000000097101/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}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/tasks/1752587000000097101/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("""{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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 = [@"{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}" 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/tasks/1752587000000097101/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|{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}|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 = @'
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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 = """
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}
""".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 an existing comment on a task.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
String
requiredmax length : 500000
Enter the comment.
JSONArray
max length : 10000array size : 0-10
Enter the attachment IDs. You can use this API to upload attachments and get the attachment 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments/1752587000000097046";
params = Map();
params.put("comment", "Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.");
params.put("attachments", [4000000094003]);
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/tasks/1752587000000097101/comments/1752587000000097046');
const payload = JSON.stringify({"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]});
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/tasks/1752587000000097101/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 = '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}',
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/tasks/1752587000000097101/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}'
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/tasks/1752587000000097101/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}");
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/tasks/1752587000000097101/comments/1752587000000097046");
request.Content = new StringContent(
@"{""comment"":""Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD."",""attachments"":[4000000094003]}",
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/tasks/1752587000000097101/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, "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}");
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/tasks/1752587000000097101/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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/tasks/1752587000000097101/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}
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/tasks/1752587000000097101/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}";
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/tasks/1752587000000097101/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}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/tasks/1752587000000097101/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("""{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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 = [@"{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}" 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/tasks/1752587000000097101/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|{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}|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 = @'
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"comment\":\"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.\",\"attachments\":[4000000094003]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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 = """
{"comment":"Updated the task scope to include integration testing. Please review the revised checklist and share your feedback by EOD.","attachments":[4000000094003]}
""".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 task permanently.
OAuth Scope:
ZohoProjects.tasks.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/tasks/1752587000000097101/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/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/tasks/1752587000000097101/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/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/tasks/1752587000000097101/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 operations related to task bug association within Zoho Projects. Use this API to retrieve, associate and disassociate Bugs in a Task .
Retrieve all issues associated with a task.
OAuth Scope:
ZohoProjects.tasks.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/tasks/1752587000000097101/associated-bugs' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associated-bugs";
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/tasks/1752587000000097101/associated-bugs');
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/tasks/1752587000000097101/associated-bugs")
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/tasks/1752587000000097101/associated-bugs";
$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/tasks/1752587000000097101/associated-bugs"
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/tasks/1752587000000097101/associated-bugs");
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/tasks/1752587000000097101/associated-bugs");
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/tasks/1752587000000097101/associated-bugs");
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/tasks/1752587000000097101/associated-bugs"
{: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/tasks/1752587000000097101/associated-bugs", 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/tasks/1752587000000097101/associated-bugs 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/tasks/1752587000000097101/associated-bugs");
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/tasks/1752587000000097101/associated-bugs';
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/tasks/1752587000000097101/associated-bugs")
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/tasks/1752587000000097101/associated-bugs"];
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/tasks/1752587000000097101/associated-bugs" 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/tasks/1752587000000097101/associated-bugs" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associated-bugs"
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/tasks/1752587000000097101/associated-bugs")!
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
Link one or more issues to a task.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
JSONArray
requiredEnter the IDs of the bugs to associate with the task.
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/tasks/1752587000000097101/associate-bugs' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'bug_ids = "[ 1752587000000094001 ]"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs";
params = Map();
params.put("bug_ids", "[ 1752587000000094001 ]");
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/tasks/1752587000000097101/associate-bugs');
url.searchParams.append('bug_ids', '[ 1752587000000094001 ]');
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/tasks/1752587000000097101/associate-bugs")
params = {
"bug_ids" => "[ 1752587000000094001 ]"
}
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 = [
'bug_ids' => '[ 1752587000000094001 ]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs" . "?" . 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/tasks/1752587000000097101/associate-bugs"
params = {
"bug_ids": "[ 1752587000000094001 ]"
}
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_bug_ids = curl_easy_escape(curl, "[ 1752587000000094001 ]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs?bug_ids=%s", enc_bug_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, "POST");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_bug_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["bug_ids"] = "[ 1752587000000094001 ]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs") { 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_bug_ids = curl_easy_escape(curl, "[ 1752587000000094001 ]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs";
url += "?bug_ids=" + std::string(enc_bug_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, "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_bug_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-bug_ids (java.net.URLEncoder/encode "[ 1752587000000094001 ]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs" "?bug_ids=" enc-bug_ids)]
(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/tasks/1752587000000097101/associate-bugs", nil)
q := req.URL.Query()
q.Add("bug_ids", "[ 1752587000000094001 ]")
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/tasks/1752587000000097101/associate-bugs?bug_ids=%5B+1752587000000094001+%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/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs");
uriBuilder.addParameter("bug_ids", "[ 1752587000000094001 ]");
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/tasks/1752587000000097101/associate-bugs';
const params = new URLSearchParams({
'bug_ids': '[ 1752587000000094001 ]'
});
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));
bug_ids = "[ 1752587000000094001 ]"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/tasks/1752587000000097101/associate-bugs".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("bug_ids", "[ 1752587000000094001 ]")
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 *encodedBug_ids = [@"[ 1752587000000094001 ]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs?bug_ids=%@", encodedBug_ids];
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_bug_ids = Uri.pct_encode "[ 1752587000000094001 ]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs" ^ "?bug_ids=" ^ enc_bug_ids) 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 = @{
bug_ids = "[ 1752587000000094001 ]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-bugs" + "?" + $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/tasks/1752587000000097101/associate-bugs"
params <- list(
bug_ids = "[ 1752587000000094001 ]"
)
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/tasks/1752587000000097101/associate-bugs")!
components.queryItems = [
URLQueryItem(name: "bug_ids", value: "[ 1752587000000094001 ]")
]
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
Disassociate an issue from a task
OAuth Scope:
ZohoProjects.tasks.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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/bug/1752587000000097233' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/1752587000000097233" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/bug/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/tasks/1752587000000097101/bug/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()
Sample Response
Possible Errors
FORBIDDEN HTTP 403
This module covers operations related to task forum association within Zoho Projects. Use this API to retrieve, associate and disassociate forum in a Task .
Retrieve all forums associated with a task.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
Enter the page number to retrieve.
int
Enter the number of entries to display 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/tasks/1752587000000097101/forums?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/forums";
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/tasks/1752587000000097101/forums');
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/tasks/1752587000000097101/forums")
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/tasks/1752587000000097101/forums" . "?" . 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/tasks/1752587000000097101/forums"
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/tasks/1752587000000097101/forums?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/tasks/1752587000000097101/forums") { 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/tasks/1752587000000097101/forums";
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/tasks/1752587000000097101/forums" "?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/tasks/1752587000000097101/forums", 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/tasks/1752587000000097101/forums?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/tasks/1752587000000097101/forums");
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/tasks/1752587000000097101/forums';
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/tasks/1752587000000097101/forums".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/tasks/1752587000000097101/forums?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/tasks/1752587000000097101/forums" ^ "?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/tasks/1752587000000097101/forums" + "?" + $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/tasks/1752587000000097101/forums"
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/tasks/1752587000000097101/forums")!
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
Link one or more forums to a task. Use this API to connect relevant forum discussions to a task.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
JSONArray
max length : 10000array size : 0-100
Enter the IDs of the forums
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/tasks/1752587000000097101/associate-forums' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"forums":["23806000074760021"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums";
params = Map();
params.put("forums", ["23806000074760021"]);
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/tasks/1752587000000097101/associate-forums');
const payload = JSON.stringify({"forums":["23806000074760021"]});
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/tasks/1752587000000097101/associate-forums")
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 = '{"forums":["23806000074760021"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"forums":["23806000074760021"]}',
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/tasks/1752587000000097101/associate-forums"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"forums":["23806000074760021"]}'
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/tasks/1752587000000097101/associate-forums");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"forums\":[\"23806000074760021\"]}");
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/tasks/1752587000000097101/associate-forums");
request.Content = new StringContent(
@"{""forums"":[""23806000074760021""]}",
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/tasks/1752587000000097101/associate-forums");
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, "{\"forums\":[\"23806000074760021\"]}");
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/tasks/1752587000000097101/associate-forums"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"forums\":[\"23806000074760021\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"forums\":[\"23806000074760021\"]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums", 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/tasks/1752587000000097101/associate-forums HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"forums":["23806000074760021"]}
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/tasks/1752587000000097101/associate-forums");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"forums\":[\"23806000074760021\"]}";
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/tasks/1752587000000097101/associate-forums';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"forums":["23806000074760021"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"forums":["23806000074760021"]}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/tasks/1752587000000097101/associate-forums")
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("""{"forums":["23806000074760021"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums"];
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 = [@"{\"forums\":[\"23806000074760021\"]}" 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/tasks/1752587000000097101/associate-forums" 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|{"forums":["23806000074760021"]}|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 = @'
{"forums":["23806000074760021"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"forums\":[\"23806000074760021\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums")!
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 = """
{"forums":["23806000074760021"]}
""".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
Disassociate one or more forums from a task.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
JSONArray
max length : 10000array size : 0-100
Enter the IDs of the forums
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/tasks/1752587000000097101/associate-forums' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"forums":["23806000074760021"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums";
params = Map();
params.put("forums", ["23806000074760021"]);
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/tasks/1752587000000097101/associate-forums');
const payload = JSON.stringify({"forums":["23806000074760021"]});
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/tasks/1752587000000097101/associate-forums")
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 = '{"forums":["23806000074760021"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '{"forums":["23806000074760021"]}',
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/tasks/1752587000000097101/associate-forums"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"forums":["23806000074760021"]}'
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/tasks/1752587000000097101/associate-forums");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"forums\":[\"23806000074760021\"]}");
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/tasks/1752587000000097101/associate-forums");
request.Content = new StringContent(
@"{""forums"":[""23806000074760021""]}",
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/tasks/1752587000000097101/associate-forums");
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, "{\"forums\":[\"23806000074760021\"]}");
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/tasks/1752587000000097101/associate-forums"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"forums\":[\"23806000074760021\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"forums\":[\"23806000074760021\"]}")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums", 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/tasks/1752587000000097101/associate-forums HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"forums":["23806000074760021"]}
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/tasks/1752587000000097101/associate-forums");
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/tasks/1752587000000097101/associate-forums';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"forums":["23806000074760021"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"forums":["23806000074760021"]}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/tasks/1752587000000097101/associate-forums")
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("""{"forums":["23806000074760021"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums"];
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 = [@"{\"forums\":[\"23806000074760021\"]}" 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/tasks/1752587000000097101/associate-forums" 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|{"forums":["23806000074760021"]}|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 = @'
{"forums":["23806000074760021"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"forums\":[\"23806000074760021\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/associate-forums")!
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 = """
{"forums":["23806000074760021"]}
""".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 task dependencies within Zoho Projects. Use this API to add, update or delete dependencies for tasks.
Create a dependency between two tasks in a project.
OAuth Scope:
ZohoProjects.tasks.READ
Parameter
String
Specify the type of dependency between the tasks. Accepted values: FS, FF, SF, SS, AutoSet
String
Specify the dependency link type. Accepted values: 0 for Hard Link, 1 for Soft Link
JSONObject
Enter the lag details to apply between the predecessor and successor tasks.
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/1752587000000097024/tasks/dependency' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency";
params = Map();
params.put("predecessor_task", {"id":"4000000062001"});
params.put("successor_task", {"id":"4000000062001"});
params.put("dependency_type", "-");
params.put("link_type", "-");
params.put("lag", {"value":[4000000000485],"type":"days"});
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/1752587000000097024/tasks/dependency');
const payload = JSON.stringify({"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}});
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/1752587000000097024/tasks/dependency")
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 = '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}',
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/1752587000000097024/tasks/dependency"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
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/1752587000000097024/tasks/dependency");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}");
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/1752587000000097024/tasks/dependency");
request.Content = new StringContent(
@"{""predecessor_task"":{""id"":""4000000062001""},""successor_task"":{""id"":""4000000062001""},""dependency_type"":""-"",""link_type"":""-"",""lag"":{""value"":[4000000000485],""type"":""days""}}",
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/1752587000000097024/tasks/dependency");
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, "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}");
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/1752587000000097024/tasks/dependency"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency", 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/1752587000000097024/tasks/dependency HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
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/1752587000000097024/tasks/dependency");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}";
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/1752587000000097024/tasks/dependency';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}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/1752587000000097024/tasks/dependency")
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("""{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency"];
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 = [@"{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}" 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/1752587000000097024/tasks/dependency" 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|{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}|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 = @'
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency")!
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 = """
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
""".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 dependency between tasks in a project.
OAuth Scope:
ZohoProjects.tasks.READ
Parameter
String
Specify the type of dependency between the tasks. Accepted values: FS, FF, SF, SS, AutoSet
String
Specify the dependency link type. Accepted values: 0 for Hard Link, 1 for Soft Link
JSONObject
Enter the lag details to apply between the predecessor and successor tasks.
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/1752587000000097024/tasks/dependency' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency";
params = Map();
params.put("predecessor_task", {"id":"4000000062001"});
params.put("successor_task", {"id":"4000000062001"});
params.put("dependency_type", "-");
params.put("link_type", "-");
params.put("lag", {"value":[4000000000485],"type":"days"});
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/1752587000000097024/tasks/dependency');
const payload = JSON.stringify({"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}});
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/1752587000000097024/tasks/dependency")
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 = '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}',
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/1752587000000097024/tasks/dependency"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
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/1752587000000097024/tasks/dependency");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}");
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/1752587000000097024/tasks/dependency");
request.Content = new StringContent(
@"{""predecessor_task"":{""id"":""4000000062001""},""successor_task"":{""id"":""4000000062001""},""dependency_type"":""-"",""link_type"":""-"",""lag"":{""value"":[4000000000485],""type"":""days""}}",
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/1752587000000097024/tasks/dependency");
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, "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}");
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/1752587000000097024/tasks/dependency"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency", 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/1752587000000097024/tasks/dependency HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
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/1752587000000097024/tasks/dependency");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}";
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/1752587000000097024/tasks/dependency';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}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/1752587000000097024/tasks/dependency")
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("""{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency"];
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 = [@"{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}" 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/1752587000000097024/tasks/dependency" 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|{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}|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 = @'
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency")!
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 = """
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
""".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 task dependency between tasks in a project.
OAuth Scope:
ZohoProjects.tasks.READ
Parameter
String
Specify the dependency type. Accepted values: FS, FF, SF or SS.
String
Specify the dependency link type. Accepted values: 0 - Hard Link or 1 - Soft Link.
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/project/1752587000000097024/tasks/dependency' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency";
params = Map();
params.put("predecessor_task", {"id":"4000000062001"});
params.put("successor_task", {"id":"4000000062001"});
params.put("dependency_type", "-");
params.put("link_type", "-");
params.put("lag", {"value":[4000000000485],"type":"days"});
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/project/1752587000000097024/tasks/dependency');
const payload = JSON.stringify({"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}});
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/project/1752587000000097024/tasks/dependency")
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 = '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}',
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/1752587000000097024/tasks/dependency"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}'
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/project/1752587000000097024/tasks/dependency");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}");
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/1752587000000097024/tasks/dependency");
request.Content = new StringContent(
@"{""predecessor_task"":{""id"":""4000000062001""},""successor_task"":{""id"":""4000000062001""},""dependency_type"":""-"",""link_type"":""-"",""lag"":{""value"":[4000000000485],""type"":""days""}}",
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/1752587000000097024/tasks/dependency");
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, "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}");
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/1752587000000097024/tasks/dependency"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency", 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/project/1752587000000097024/tasks/dependency HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
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/1752587000000097024/tasks/dependency");
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/1752587000000097024/tasks/dependency';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}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/1752587000000097024/tasks/dependency")
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("""{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency"];
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 = [@"{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}" 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/1752587000000097024/tasks/dependency" 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|{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}|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 = @'
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"predecessor_task\":{\"id\":\"4000000062001\"},\"successor_task\":{\"id\":\"4000000062001\"},\"dependency_type\":\"-\",\"link_type\":\"-\",\"lag\":{\"value\":[4000000000485],\"type\":\"days\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/project/1752587000000097024/tasks/dependency")!
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 = """
{"predecessor_task":{"id":"4000000062001"},"successor_task":{"id":"4000000062001"},"dependency_type":"-","link_type":"-","lag":{"value":[4000000000485],"type":"days"}}
""".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 the status timeline within Zoho Projects. Use this API to retrieve or export task status timelines and status history at the project or portal level.
Retrieve the status change timeline for a task. Use this API to track how a task has progressed through different statuses over time.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
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/tasks/1752587000000097101/status-timeline?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/status-timeline";
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/tasks/1752587000000097101/status-timeline');
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/tasks/1752587000000097101/status-timeline")
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/tasks/1752587000000097101/status-timeline" . "?" . 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/tasks/1752587000000097101/status-timeline"
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/tasks/1752587000000097101/status-timeline?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/tasks/1752587000000097101/status-timeline") { 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/tasks/1752587000000097101/status-timeline";
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/tasks/1752587000000097101/status-timeline" "?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/tasks/1752587000000097101/status-timeline", 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/tasks/1752587000000097101/status-timeline?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/tasks/1752587000000097101/status-timeline");
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/tasks/1752587000000097101/status-timeline';
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/tasks/1752587000000097101/status-timeline".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/tasks/1752587000000097101/status-timeline?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/tasks/1752587000000097101/status-timeline" ^ "?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/tasks/1752587000000097101/status-timeline" + "?" + $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/tasks/1752587000000097101/status-timeline"
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/tasks/1752587000000097101/status-timeline")!
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 history of all tasks in a project. Use this API to audit status transitions across tasks within a specific project.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
Enter the number of entries to be displayed per page.
long
Enter the last modification 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/taskstatushistory?page=1&per_page=10&last_modified_time=1631538698839' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("last_modified_time", "1631538698839");
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/taskstatushistory');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('last_modified_time', '1631538698839');
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/taskstatushistory")
params = {
"page" => "1",
"per_page" => "10",
"last_modified_time" => "1631538698839"
}
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',
'last_modified_time' => '1631538698839',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory" . "?" . 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/taskstatushistory"
params = {
"page": "1",
"per_page": "10",
"last_modified_time": "1631538698839"
}
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_last_modified_time = curl_easy_escape(curl, "1631538698839", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory?page=%s&per_page=%s&last_modified_time=%s", enc_page, enc_per_page, enc_last_modified_time);
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_last_modified_time);
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["last_modified_time"] = "1631538698839";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory") { 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_last_modified_time = curl_easy_escape(curl, "1631538698839", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&last_modified_time=" + std::string(enc_last_modified_time);
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_last_modified_time);
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-last_modified_time (java.net.URLEncoder/encode "1631538698839" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory" "?page=" enc-page "&per_page=" enc-per_page "&last_modified_time=" enc-last_modified_time)]
(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/taskstatushistory", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("last_modified_time", "1631538698839")
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/taskstatushistory?page=1&per_page=10&last_modified_time=1631538698839 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/taskstatushistory");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("last_modified_time", "1631538698839");
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/taskstatushistory';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'last_modified_time': '1631538698839'
});
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"
last_modified_time = "1631538698839"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/taskstatushistory".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("last_modified_time", "1631538698839")
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 *encodedLast_modified_time = [@"1631538698839" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory?page=%@&per_page=%@&last_modified_time=%@", encodedPage, encodedPer_page, encodedLast_modified_time];
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_last_modified_time = Uri.pct_encode "1631538698839" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&last_modified_time=" ^ enc_last_modified_time) 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"
last_modified_time = "1631538698839"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/taskstatushistory" + "?" + $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/taskstatushistory"
params <- list(
page = "1",
per_page = "10",
last_modified_time = "1631538698839"
)
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/taskstatushistory")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "last_modified_time", value: "1631538698839")
]
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 history of all tasks across a portal. Use this API to get a portal-wide view of task status transitions.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
Enter the number of entries to be displayed per page.
long
Enter the last modification 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/taskstatushistory?page=1&per_page=10&last_modified_time=1631538698839' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("last_modified_time", "1631538698839");
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/taskstatushistory');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('last_modified_time', '1631538698839');
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/taskstatushistory")
params = {
"page" => "1",
"per_page" => "10",
"last_modified_time" => "1631538698839"
}
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',
'last_modified_time' => '1631538698839',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory" . "?" . 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/taskstatushistory"
params = {
"page": "1",
"per_page": "10",
"last_modified_time": "1631538698839"
}
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_last_modified_time = curl_easy_escape(curl, "1631538698839", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory?page=%s&per_page=%s&last_modified_time=%s", enc_page, enc_per_page, enc_last_modified_time);
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_last_modified_time);
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["last_modified_time"] = "1631538698839";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory") { 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_last_modified_time = curl_easy_escape(curl, "1631538698839", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&last_modified_time=" + std::string(enc_last_modified_time);
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_last_modified_time);
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-last_modified_time (java.net.URLEncoder/encode "1631538698839" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory" "?page=" enc-page "&per_page=" enc-per_page "&last_modified_time=" enc-last_modified_time)]
(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/taskstatushistory", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("last_modified_time", "1631538698839")
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/taskstatushistory?page=1&per_page=10&last_modified_time=1631538698839 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/taskstatushistory");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("last_modified_time", "1631538698839");
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/taskstatushistory';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'last_modified_time': '1631538698839'
});
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"
last_modified_time = "1631538698839"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/taskstatushistory".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("last_modified_time", "1631538698839")
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 *encodedLast_modified_time = [@"1631538698839" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory?page=%@&per_page=%@&last_modified_time=%@", encodedPage, encodedPer_page, encodedLast_modified_time];
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_last_modified_time = Uri.pct_encode "1631538698839" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&last_modified_time=" ^ enc_last_modified_time) 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"
last_modified_time = "1631538698839"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/taskstatushistory"
params <- list(
page = "1",
per_page = "10",
last_modified_time = "1631538698839"
)
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/taskstatushistory")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "last_modified_time", value: "1631538698839")
]
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 status timeline of tasks from a portal. Use this API to download a report of task status changes.
OAuth Scope:
ZohoProjects.tasks.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/projects/1752587000000097024/tasks/1752587000000097101/status-timeline/export' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/status-timeline/export";
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/tasks/1752587000000097101/status-timeline/export');
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/tasks/1752587000000097101/status-timeline/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"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/status-timeline/export";
$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/tasks/1752587000000097101/status-timeline/export"
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/tasks/1752587000000097101/status-timeline/export");
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/tasks/1752587000000097101/status-timeline/export");
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/tasks/1752587000000097101/status-timeline/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);
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/tasks/1752587000000097101/status-timeline/export"
{: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/tasks/1752587000000097101/status-timeline/export", 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/tasks/1752587000000097101/status-timeline/export 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/tasks/1752587000000097101/status-timeline/export");
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/tasks/1752587000000097101/status-timeline/export';
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/tasks/1752587000000097101/status-timeline/export")
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/tasks/1752587000000097101/status-timeline/export"];
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/tasks/1752587000000097101/status-timeline/export" 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/tasks/1752587000000097101/status-timeline/export" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/status-timeline/export"
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/tasks/1752587000000097101/status-timeline/export")!
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
This module covers operations related to task custom view within Zoho Projects. Use this API to create new custom views in a project or retrieve form data for custom views.
Retrieve both default and custom views from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tasks.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/mytasks/customviews' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/mytasks/customviews";
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/mytasks/customviews');
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/mytasks/customviews")
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/mytasks/customviews";
$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/mytasks/customviews"
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/mytasks/customviews");
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/mytasks/customviews");
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/mytasks/customviews");
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/mytasks/customviews"
{: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/mytasks/customviews", 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/mytasks/customviews 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/mytasks/customviews");
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/mytasks/customviews';
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/mytasks/customviews")
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/mytasks/customviews"];
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/mytasks/customviews" 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/mytasks/customviews" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/mytasks/customviews"
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/mytasks/customviews")!
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()
Retrieve all task custom views available in a project. Use this API to list the custom views configured for a project.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
int
default : 1Enter the page number to retrieve.
int
limit : 1-200default : 100
Enter the number of custom views to retrieve per page.
String
Specify the sort order for the results. Accepted values: ASC(created_time), DESC(created_time), ASC(last_updated_time), DESC(last_updated_time)
String
Specify the type of custom views to retrieve. Accepted values: predefined_views, my_views, custom_views, favourite_views, default_view, i_created, shared_with_me
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/tasks/customviews?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_type=date' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_type", "date");
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/tasks/customviews');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_type', 'date');
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/tasks/customviews")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "ASC(last_modified_time)",
"view_type" => "date"
}
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_type' => 'date',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews" . "?" . 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/tasks/customviews"
params = {
"page": "1",
"per_page": "10",
"sort_by": "ASC(last_modified_time)",
"view_type": "date"
}
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_type = curl_easy_escape(curl, "date", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews?page=%s&per_page=%s&sort_by=%s&view_type=%s", enc_page, enc_per_page, enc_sort_by, enc_view_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_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_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["page"] = "1";
query["per_page"] = "10";
query["sort_by"] = "ASC(last_modified_time)";
query["view_type"] = "date";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews") { 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_type = curl_easy_escape(curl, "date", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&view_type=" + std::string(enc_view_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_page);
curl_free(enc_per_page);
curl_free(enc_sort_by);
curl_free(enc_view_type);
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_type (java.net.URLEncoder/encode "date" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&view_type=" enc-view_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/1752587000000097024/tasks/customviews", 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_type", "date")
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/tasks/customviews?page=1&per_page=10&sort_by=ASC%28last_modified_time%29&view_type=date 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/tasks/customviews");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_type", "date");
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/tasks/customviews';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'ASC(last_modified_time)',
'view_type': 'date'
});
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_type = "date"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/tasks/customviews".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_type", "date")
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_type = [@"date" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews?page=%@&per_page=%@&sort_by=%@&view_type=%@", encodedPage, encodedPer_page, encodedSort_by, encodedView_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_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_type = Uri.pct_encode "date" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&view_type=" ^ enc_view_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 = @{
page = "1"
per_page = "10"
sort_by = "ASC(last_modified_time)"
view_type = "date"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews" + "?" + $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/tasks/customviews"
params <- list(
page = "1",
per_page = "10",
sort_by = "ASC(last_modified_time)",
view_type = "date"
)
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/tasks/customviews")!
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_type", value: "date")
]
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 custom task view. Use this API to fetch the filters, grouping, and display settings configured for a specific custom view.
OAuth Scope:
ZohoProjects.tasks.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/tasks/customviews/1752587000000097269' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269";
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/tasks/customviews/1752587000000097269');
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/tasks/customviews/1752587000000097269")
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/tasks/customviews/1752587000000097269";
$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/tasks/customviews/1752587000000097269"
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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269"
{: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/tasks/customviews/1752587000000097269", 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/tasks/customviews/1752587000000097269 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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269';
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/tasks/customviews/1752587000000097269")
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/tasks/customviews/1752587000000097269"];
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/tasks/customviews/1752587000000097269" 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/tasks/customviews/1752587000000097269" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269"
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/tasks/customviews/1752587000000097269")!
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
Set a custom view as the default view at the portal level. Use this API to define which view is displayed by default when users access tasks across the portal.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
String
Set or remove this view as default for all users in the portal. 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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"for_all_users":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview";
params = Map();
params.put("for_all_users", "-");
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/tasks/customviews/1752587000000097269/setdefaultview');
const payload = JSON.stringify({"for_all_users":"-"});
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/tasks/customviews/1752587000000097269/setdefaultview")
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 = '{"for_all_users":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"for_all_users":"-"}',
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/tasks/customviews/1752587000000097269/setdefaultview"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"for_all_users":"-"}'
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/tasks/customviews/1752587000000097269/setdefaultview");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"for_all_users\":\"-\"}");
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/tasks/customviews/1752587000000097269/setdefaultview");
request.Content = new StringContent(
@"{""for_all_users"":""-""}",
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/tasks/customviews/1752587000000097269/setdefaultview");
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, "{\"for_all_users\":\"-\"}");
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/tasks/customviews/1752587000000097269/setdefaultview"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"for_all_users\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"for_all_users\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview", 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/tasks/customviews/1752587000000097269/setdefaultview HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"for_all_users":"-"}
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/tasks/customviews/1752587000000097269/setdefaultview");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"for_all_users\":\"-\"}";
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/tasks/customviews/1752587000000097269/setdefaultview';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"for_all_users":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"for_all_users":"-"}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/tasks/customviews/1752587000000097269/setdefaultview")
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("""{"for_all_users":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview"];
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 = [@"{\"for_all_users\":\"-\"}" 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/tasks/customviews/1752587000000097269/setdefaultview" 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|{"for_all_users":"-"}|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 = @'
{"for_all_users":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"for_all_users\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/setdefaultview")!
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 = """
{"for_all_users":"-"}
""".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
Set a custom view as a favourite at the portal level. Use this API to pin frequently used views for quicker access across the portal.
OAuth Scope:
ZohoProjects.tasks.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/tasks/customviews/1752587000000097269/markfavourite' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/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/tasks/customviews/1752587000000097269/markfavourite" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/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/tasks/customviews/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()
Sample Response
Remove a custom view from favorites at the portal level. Use this API to unpin a view that no longer needs to be featured as a favourite across the portal.
OAuth Scope:
ZohoProjects.tasks.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/tasks/customviews/1752587000000097269/unmarkfavourite' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/unmarkfavourite";
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/tasks/customviews/1752587000000097269/unmarkfavourite');
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/tasks/customviews/1752587000000097269/unmarkfavourite")
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/tasks/customviews/1752587000000097269/unmarkfavourite";
$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/tasks/customviews/1752587000000097269/unmarkfavourite"
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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite"
{: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/tasks/customviews/1752587000000097269/unmarkfavourite", 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/tasks/customviews/1752587000000097269/unmarkfavourite 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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite';
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/tasks/customviews/1752587000000097269/unmarkfavourite")
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/tasks/customviews/1752587000000097269/unmarkfavourite"];
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/tasks/customviews/1752587000000097269/unmarkfavourite" 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/tasks/customviews/1752587000000097269/unmarkfavourite" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269/unmarkfavourite"
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/tasks/customviews/1752587000000097269/unmarkfavourite")!
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
Set a custom task view as the default view for a project. Use this API to define which view is displayed by default when users access tasks within a specific project.
OAuth Scope:
ZohoProjects.tasks.UPDATE
Parameter
String
Set or remove this view as default for all users in the project. 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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"for_all_users":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview";
params = Map();
params.put("for_all_users", "-");
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/tasks/customviews/1752587000000097269/setdefaultview');
const payload = JSON.stringify({"for_all_users":"-"});
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/tasks/customviews/1752587000000097269/setdefaultview")
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 = '{"for_all_users":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"for_all_users":"-"}',
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/tasks/customviews/1752587000000097269/setdefaultview"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"for_all_users":"-"}'
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/tasks/customviews/1752587000000097269/setdefaultview");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"for_all_users\":\"-\"}");
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/tasks/customviews/1752587000000097269/setdefaultview");
request.Content = new StringContent(
@"{""for_all_users"":""-""}",
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/tasks/customviews/1752587000000097269/setdefaultview");
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, "{\"for_all_users\":\"-\"}");
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/tasks/customviews/1752587000000097269/setdefaultview"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"for_all_users\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"for_all_users\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview", 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/tasks/customviews/1752587000000097269/setdefaultview HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"for_all_users":"-"}
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/tasks/customviews/1752587000000097269/setdefaultview");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"for_all_users\":\"-\"}";
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/tasks/customviews/1752587000000097269/setdefaultview';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"for_all_users":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"for_all_users":"-"}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/tasks/customviews/1752587000000097269/setdefaultview")
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("""{"for_all_users":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview"];
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 = [@"{\"for_all_users\":\"-\"}" 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/tasks/customviews/1752587000000097269/setdefaultview" 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|{"for_all_users":"-"}|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 = @'
{"for_all_users":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"for_all_users\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/setdefaultview")!
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 = """
{"for_all_users":"-"}
""".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
Set a custom view as a favourite for a project. Use this API to pin frequently used views for quicker access within a specific project.
OAuth Scope:
ZohoProjects.tasks.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/tasks/customviews/1752587000000097269/markfavourite' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/1752587000000097269/markfavourite" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/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/1752587000000097024/tasks/customviews/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()
Sample Response
Remove a task custom view from the favorite views for a project.
OAuth Scope:
ZohoProjects.tasks.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/tasks/customviews/1752587000000097269/unmarkfavourite' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/unmarkfavourite";
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/tasks/customviews/1752587000000097269/unmarkfavourite');
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/tasks/customviews/1752587000000097269/unmarkfavourite")
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/tasks/customviews/1752587000000097269/unmarkfavourite";
$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/tasks/customviews/1752587000000097269/unmarkfavourite"
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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite"
{: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/tasks/customviews/1752587000000097269/unmarkfavourite", 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/tasks/customviews/1752587000000097269/unmarkfavourite 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/tasks/customviews/1752587000000097269/unmarkfavourite");
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/tasks/customviews/1752587000000097269/unmarkfavourite';
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/tasks/customviews/1752587000000097269/unmarkfavourite")
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/tasks/customviews/1752587000000097269/unmarkfavourite"];
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/tasks/customviews/1752587000000097269/unmarkfavourite" 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/tasks/customviews/1752587000000097269/unmarkfavourite" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/customviews/1752587000000097269/unmarkfavourite"
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/tasks/customviews/1752587000000097269/unmarkfavourite")!
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 task custom view from the Zoho Projects portal permanently.
OAuth Scope:
ZohoProjects.tasks.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/tasks/customviews/1752587000000097269' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269";
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/tasks/customviews/1752587000000097269');
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/tasks/customviews/1752587000000097269")
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/tasks/customviews/1752587000000097269";
$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/tasks/customviews/1752587000000097269"
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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269"
{: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/tasks/customviews/1752587000000097269", 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/tasks/customviews/1752587000000097269 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/tasks/customviews/1752587000000097269");
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/tasks/customviews/1752587000000097269';
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/tasks/customviews/1752587000000097269")
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/tasks/customviews/1752587000000097269"];
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/tasks/customviews/1752587000000097269" 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/tasks/customviews/1752587000000097269" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tasks/customviews/1752587000000097269"
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/tasks/customviews/1752587000000097269")!
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()
This module covers operations related to the meta data within Zoho Projects. Use this API to modify the meta data of tasks at the project or portal level.
Retrieve the tasks that are blocking or waiting on a given task.
OAuth Scope:
ZohoProjects.tasks.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/tasks/1752587000000097101/blocking-waiting-tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/blocking-waiting-tasks";
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/tasks/1752587000000097101/blocking-waiting-tasks');
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/tasks/1752587000000097101/blocking-waiting-tasks")
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/tasks/1752587000000097101/blocking-waiting-tasks";
$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/tasks/1752587000000097101/blocking-waiting-tasks"
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/tasks/1752587000000097101/blocking-waiting-tasks");
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/tasks/1752587000000097101/blocking-waiting-tasks");
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/tasks/1752587000000097101/blocking-waiting-tasks");
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/tasks/1752587000000097101/blocking-waiting-tasks"
{: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/tasks/1752587000000097101/blocking-waiting-tasks", 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/tasks/1752587000000097101/blocking-waiting-tasks 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/tasks/1752587000000097101/blocking-waiting-tasks");
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/tasks/1752587000000097101/blocking-waiting-tasks';
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/tasks/1752587000000097101/blocking-waiting-tasks")
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/tasks/1752587000000097101/blocking-waiting-tasks"];
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/tasks/1752587000000097101/blocking-waiting-tasks" 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/tasks/1752587000000097101/blocking-waiting-tasks" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tasks/1752587000000097101/blocking-waiting-tasks"
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/tasks/1752587000000097101/blocking-waiting-tasks")!
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 task baselines within Zoho Projects.
Retrieve all baselines from a project. Use this API to view saved project snapshots for comparing planned versus actual progress.
OAuth Scope:
ZohoProjects.tasks.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/baselines' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/baselines";
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/baselines');
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/baselines")
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/baselines";
$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/baselines"
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/baselines");
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/baselines");
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/baselines");
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/baselines"
{: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/baselines", 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/baselines 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/baselines");
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/baselines';
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/baselines")
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/baselines"];
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/baselines" 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/baselines" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/baselines"
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/baselines")!
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 task details captured under a specific baseline. Use this API to compare current task data against a baseline to identify deviations.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
long
requiredEnter the baseline ID.
int
Enter the index. Should be greater than or equal to 0.
int
Enter the range to retrieve. Should be less than or equal to 200.
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/baselinedetails?baselineId=4000000097557084&index=1&range=100' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/baselinedetails";
params = Map();
params.put("baselineId", "4000000097557084");
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/projects/1752587000000097024/baselinedetails');
url.searchParams.append('baselineId', '4000000097557084');
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/projects/1752587000000097024/baselinedetails")
params = {
"baselineId" => "4000000097557084",
"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 = [
'baselineId' => '4000000097557084',
'index' => '1',
'range' => '100',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/baselinedetails" . "?" . 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/baselinedetails"
params = {
"baselineId": "4000000097557084",
"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_baselineId = curl_easy_escape(curl, "4000000097557084", 0);
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/projects/1752587000000097024/baselinedetails?baselineId=%s&index=%s&range=%s", enc_baselineId, 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_baselineId);
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["baselineId"] = "4000000097557084";
query["index"] = "1";
query["range"] = "100";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/baselinedetails") { 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_baselineId = curl_easy_escape(curl, "4000000097557084", 0);
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/projects/1752587000000097024/baselinedetails";
url += "?baselineId=" + std::string(enc_baselineId);
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_baselineId);
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-baselineId (java.net.URLEncoder/encode "4000000097557084" "UTF-8")
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/projects/1752587000000097024/baselinedetails" "?baselineId=" enc-baselineId "&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/projects/1752587000000097024/baselinedetails", nil)
q := req.URL.Query()
q.Add("baselineId", "4000000097557084")
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/projects/1752587000000097024/baselinedetails?baselineId=4000000097557084&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/projects/1752587000000097024/baselinedetails");
uriBuilder.addParameter("baselineId", "4000000097557084");
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/projects/1752587000000097024/baselinedetails';
const params = new URLSearchParams({
'baselineId': '4000000097557084',
'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));
baselineId = "4000000097557084"
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/projects/1752587000000097024/baselinedetails".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("baselineId", "4000000097557084")
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 *encodedBaselineId = [@"4000000097557084" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIndex = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"100" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/baselinedetails?baselineId=%@&index=%@&range=%@", encodedBaselineId, 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_baselineId = Uri.pct_encode "4000000097557084" in
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/projects/1752587000000097024/baselinedetails" ^ "?baselineId=" ^ enc_baselineId ^ "&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 = @{
baselineId = "4000000097557084"
index = "1"
range = "100"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/baselinedetails" + "?" + $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/baselinedetails"
params <- list(
baselineId = "4000000097557084",
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/projects/1752587000000097024/baselinedetails")!
components.queryItems = [
URLQueryItem(name: "baselineId", value: "4000000097557084"),
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
This module covers time log related operations within Zoho Projects. Use this API to manage time logs, generate time log reports, and configure time log-related settings.
This module covers time log related operations within Zoho Projects. Use this API to retrieve, add, update, or delete individual time logs and get detailed log information.
Retrieve the details of a specific time log entry in a project.
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
String
requiredEnter the log type.Accepted values: task,issue,general
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/logs/[LOGID]?type=task' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]";
params = Map();
params.put("type", "task");
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/logs/[LOGID]');
url.searchParams.append('type', 'task');
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/logs/[LOGID]")
params = {
"type" => "task"
}
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' => 'task',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]" . "?" . 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/logs/[LOGID]"
params = {
"type": "task"
}
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, "task", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]?type=%s", enc_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_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["type"] = "task";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]") { 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, "task", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]";
url += "?type=" + std::string(enc_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_type);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "task" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]" "?type=" enc-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/1752587000000097024/logs/[LOGID]", nil)
q := req.URL.Query()
q.Add("type", "task")
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/logs/[LOGID]?type=task 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/logs/[LOGID]");
uriBuilder.addParameter("type", "task");
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/logs/[LOGID]';
const params = new URLSearchParams({
'type': 'task'
});
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 = "task"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/logs/[LOGID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "task")
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 = [@"task" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]?type=%@", encodedType];
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 "task" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]" ^ "?type=" ^ enc_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 = @{
type = "task"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]" + "?" + $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/logs/[LOGID]"
params <- list(
type = "task"
)
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/logs/[LOGID]")!
components.queryItems = [
URLQueryItem(name: "type", value: "task")
]
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 time log to a project. Use this API to record time spent on tasks or issues within a project.
OAuth Scope:
ZohoProjects.timesheets.CREATE
Parameter
String
max length : 1000Enter the name of the time log.
String
requiredEnter the date of the time log. Format: YYYY-MM-DD
String
requiredEnter the billing status of the time log. Accepted values: Billable, Non Billable
String
Enter the number of hours to log.
String
max length : 10000Enter any additional notes for the time log.
long
Enter the ZPUID of the time log owner.
long
Enter the ZPUID of the approver for the time log.
String
Enter the start time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
String
Enter the end time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
JSONObject
requiredmax length : 1000
Enter the details of the module associated with the time log.
long
Enter the name of the user picklist custom field used during creation.
String
max length : 255Enter the name of the single-line custom field used during creation.
String
max length : 2000Enter the name of the multi-line text custom field used during creation.
String
max length : 255Enter the name of the email custom field used during creation.
String
Enter the name of the date custom field used during creation.
String
Enter the name of the decimal custom field used during creation.
String
Enter the name of the checkbox custom field used during creation.
String
Enter the Zoho Sprints log ID to link the time log to a sprint.
String
Enter the approval status of the time log. Accepted values: Approved, Unapproved, Rejected
double
Enter the cost rate per hour for the time log.
boolean
Specify whether the time log is added from a timer. 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/log' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log";
params = Map();
params.put("log_name", "Enter a name for the general time log");
params.put("date", "2024-12-11");
params.put("bill_status", "Billable");
params.put("hours", "01.00");
params.put("notes", "The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.");
params.put("owner_zpuid", "8000000008075");
params.put("approver", "22822935");
params.put("start_time", "01:00 AM");
params.put("end_time", "02:00 AM");
params.put("module", {"id":"4000000004947","type":"task"});
params.put("cf_user_picklist", "-");
params.put("cf_single_line", "-");
params.put("cf_multi_line", "-");
params.put("cf_email", "-");
params.put("cf_date", "-");
params.put("cf_decimal", "-");
params.put("cf_check_box", "-");
params.put("sprints_logid", "-");
params.put("status", "on");
params.put("cost_rate_per_hour", "1");
params.put("for_timer", "false");
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/log');
const payload = JSON.stringify({"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log")
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 = '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}'
response = requests.post(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"cost_rate_per_hour\":\"1\",\"for_timer\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log");
request.Content = new StringContent(
@"{""log_name"":""Enter a name for the general time log"",""date"":""2024-12-11"",""bill_status"":""Billable"",""hours"":""01.00"",""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."",""owner_zpuid"":""8000000008075"",""approver"":""22822935"",""start_time"":""01:00 AM"",""end_time"":""02:00 AM"",""module"":{""id"":""4000000004947"",""type"":""task""},""cf_user_picklist"":""-"",""cf_single_line"":""-"",""cf_multi_line"":""-"",""cf_email"":""-"",""cf_date"":""-"",""cf_decimal"":""-"",""cf_check_box"":""-"",""sprints_logid"":""-"",""status"":""on"",""cost_rate_per_hour"":""1"",""for_timer"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log");
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, "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"cost_rate_per_hour\":\"1\",\"for_timer\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"cost_rate_per_hour\":\"1\",\"for_timer\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"cost_rate_per_hour\":\"1\",\"for_timer\":\"false\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log", 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/log HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"cost_rate_per_hour\":\"1\",\"for_timer\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}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/log")
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("""{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log"];
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 = [@"{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"cost_rate_per_hour\":\"1\",\"for_timer\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log" 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|{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}|json} in
Lwt_main.run (
Client.post ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"cost_rate_per_hour\":\"1\",\"for_timer\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/log")!
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 = """
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","cost_rate_per_hour":"1","for_timer":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Modify a time log in a project.
OAuth Scope:
ZohoProjects.timesheets.UPDATE
Parameter
String
max length : 1000Enter the name of the time log.
String
Enter the date of the time log. Format: YYYY-MM-DD
String
Enter the billing status of the time log. Accepted values: Billable, Non Billable
String
Enter the approval status of the time log. Accepted values: Approved, Unapproved, Rejected
String
Enter the number of hours to log.
String
max length : 10000Enter any additional notes for the time log.
long
Enter the ZPUID of the time log owner.
long
Enter the ZPUID of the approver for the time log.
String
Enter the start time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
String
Enter the end time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
JSONObject
requiredmax length : 1000
Enter the details of the module associated with the time log.
long
Enter the name of the numeric custom field used during creation.
long
Enter the name of the user picklist custom field used during creation.
String
max length : 255Enter the name of the single-line custom field used during creation.
String
max length : 2000Enter the name of the multi-line text custom field used during creation.
String
max length : 255Enter the name of the email custom field used during creation.
String
Enter the name of the date custom field used during creation.
String
Enter the name of the decimal custom field used during creation.
String
Enter the name of the checkbox custom field used during creation.
JSONObject
Enter additional time entry details to log alongside the main entry.
double
Enter the cost per hour for the time log.
String
Specify whether the time log is saved as a draft. 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]";
params = Map();
params.put("log_name", "Enter a name for the general time log");
params.put("date", "2024-12-11");
params.put("bill_status", "Billable");
params.put("approval_status", "Approved");
params.put("hours", "01.00");
params.put("notes", "The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.");
params.put("owner_zpuid", "8000000008075");
params.put("approver", "22822935");
params.put("start_time", "01:00 AM");
params.put("end_time", "02:00 AM");
params.put("module", "{"type":"issue","id":"8000000008112"}");
params.put("cf_number", "-");
params.put("cf_user_picklist", "-");
params.put("cf_single_line", "-");
params.put("cf_multi_line", "-");
params.put("cf_email", "-");
params.put("cf_date", "-");
params.put("cf_decimal", "-");
params.put("cf_check_box", "-");
params.put("extra_data", {"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."});
params.put("cost_rate_per_hour", "1");
params.put("is_draft", "false");
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/logs/[LOGID]');
const payload = JSON.stringify({"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]")
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 = '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}'
response = requests.patch(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":\"{\\\"type\\\":\\\"issue\\\",\\\"id\\\":\\\"8000000008112\\\"}\",\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\",\"is_draft\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]");
request.Content = new StringContent(
@"{""log_name"":""Enter a name for the general time log"",""date"":""2024-12-11"",""bill_status"":""Billable"",""approval_status"":""Approved"",""hours"":""01.00"",""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."",""owner_zpuid"":""8000000008075"",""approver"":""22822935"",""start_time"":""01:00 AM"",""end_time"":""02:00 AM"",""module"":""{\""type\"":\""issue\"",\""id\"":\""8000000008112\""}"",""cf_number"":""-"",""cf_user_picklist"":""-"",""cf_single_line"":""-"",""cf_multi_line"":""-"",""cf_email"":""-"",""cf_date"":""-"",""cf_decimal"":""-"",""cf_check_box"":""-"",""extra_data"":{""start_time"":""01:00 AM"",""end_time"":""02:00 AM"",""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.""},""cost_rate_per_hour"":""1"",""is_draft"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]");
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, "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":\"{\\\"type\\\":\\\"issue\\\",\\\"id\\\":\\\"8000000008112\\\"}\",\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\",\"is_draft\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":\"{\\\"type\\\":\\\"issue\\\",\\\"id\\\":\\\"8000000008112\\\"}\",\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\",\"is_draft\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":\"{\\\"type\\\":\\\"issue\\\",\\\"id\\\":\\\"8000000008112\\\"}\",\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\",\"is_draft\":\"false\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]", 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/logs/[LOGID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":\"{\\\"type\\\":\\\"issue\\\",\\\"id\\\":\\\"8000000008112\\\"}\",\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\",\"is_draft\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}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/logs/[LOGID]")
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("""{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]"];
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 = [@"{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":\"{\\\"type\\\":\\\"issue\\\",\\\"id\\\":\\\"8000000008112\\\"}\",\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\",\"is_draft\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]" 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|{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}|json} in
Lwt_main.run (
Client.patch ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\"type\":\"issue\",\"id\":\"8000000008112\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":\"{\\\"type\\\":\\\"issue\\\",\\\"id\\\":\\\"8000000008112\\\"}\",\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\",\"is_draft\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]")!
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 = """
{"log_name":"Enter a name for the general time log","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":"{\\"type\\":\\"issue\\",\\"id\\":\\"8000000008112\\"}","cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1","is_draft":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Remove the time log from a project
OAuth Scope:
ZohoProjects.timesheets.DELETE
Parameter
String
requiredEnter the module type.Accepted values: task,issue,general
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/logs/[LOGID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"task"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]";
params = Map();
params.put("module", "task");
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/logs/[LOGID]');
const payload = JSON.stringify({"module":"task"});
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/logs/[LOGID]")
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":"task"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '{"module":"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/logs/[LOGID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"task"}'
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/logs/[LOGID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"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.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]");
request.Content = new StringContent(
@"{""module"":""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/logs/[LOGID]");
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\":\"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/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"task\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"task\"}")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]", 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/logs/[LOGID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"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/logs/[LOGID]");
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/logs/[LOGID]';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"task"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"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/logs/[LOGID]")
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":"task"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]"];
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\":\"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/logs/[LOGID]" 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":"task"}|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":"task"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"task\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/logs/[LOGID]")!
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":"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
This module covers bulk time log related operations within Zoho Projects. Use this API to retrieve, add, update, or delete multiple time logs across projects.
Retrieve all time logs from the Zoho Projects portal
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
requiredEnter the view type. Accepted values: day, week, month, customdate. Use customdate for a custom date range ? the difference between start_date and end_date must not exceed 6 months.
String
Enter the start date of the time log range. Format: YYYY-MM-DD
String
Enter the end date of the time log range. Format: YYYY-MM-DD
JSONObject
requiredEnter the details of the module associated with the time log.
boolean
Specify whether to filter time logs by modified date instead of start date. 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)?page=1&per_page=10&view_type=week&start_date=2024-08-21&end_date=2024-08-22&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&module=%7B%22id%22%3A%224000000004947%22%2C%22type%22%3A%22task%22%7D&fetch_by_modified_time=false' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("view_type", "week");
params.put("start_date", "2024-08-21");
params.put("end_date", "2024-08-22");
params.put("filter", {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"});
params.put("module", {"id":"4000000004947","type":"task"});
params.put("fetch_by_modified_time", "false");
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/(timesheet|timelogs)');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('view_type', 'week');
url.searchParams.append('start_date', '2024-08-21');
url.searchParams.append('end_date', '2024-08-22');
url.searchParams.append('filter', '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}');
url.searchParams.append('module', '{"id":"4000000004947","type":"task"}');
url.searchParams.append('fetch_by_modified_time', 'false');
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/(timesheet|timelogs)")
params = {
"page" => "1",
"per_page" => "10",
"view_type" => "week",
"start_date" => "2024-08-21",
"end_date" => "2024-08-22",
"filter" => "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"module" => "{\"id\":\"4000000004947\",\"type\":\"task\"}",
"fetch_by_modified_time" => "false"
}
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',
'view_type' => 'week',
'start_date' => '2024-08-21',
'end_date' => '2024-08-22',
'filter' => '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'module' => '{"id":"4000000004947","type":"task"}',
'fetch_by_modified_time' => 'false',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)" . "?" . 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/(timesheet|timelogs)"
params = {
"page": "1",
"per_page": "10",
"view_type": "week",
"start_date": "2024-08-21",
"end_date": "2024-08-22",
"filter": "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"module": "{\"id\":\"4000000004947\",\"type\":\"task\"}",
"fetch_by_modified_time": "false"
}
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_view_type = curl_easy_escape(curl, "week", 0);
char *enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char *enc_end_date = curl_easy_escape(curl, "2024-08-22", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char *enc_module = curl_easy_escape(curl, "{\"id\":\"4000000004947\",\"type\":\"task\"}", 0);
char *enc_fetch_by_modified_time = curl_easy_escape(curl, "false", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)?page=%s&per_page=%s&view_type=%s&start_date=%s&end_date=%s&filter=%s&module=%s&fetch_by_modified_time=%s", enc_page, enc_per_page, enc_view_type, enc_start_date, enc_end_date, enc_filter, enc_module, enc_fetch_by_modified_time);
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_view_type);
curl_free(enc_start_date);
curl_free(enc_end_date);
curl_free(enc_filter);
curl_free(enc_module);
curl_free(enc_fetch_by_modified_time);
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["view_type"] = "week";
query["start_date"] = "2024-08-21";
query["end_date"] = "2024-08-22";
query["filter"] = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}";
query["module"] = "{\"id\":\"4000000004947\",\"type\":\"task\"}";
query["fetch_by_modified_time"] = "false";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)") { 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_view_type = curl_easy_escape(curl, "week", 0);
char* enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char* enc_end_date = curl_easy_escape(curl, "2024-08-22", 0);
char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char* enc_module = curl_easy_escape(curl, "{\"id\":\"4000000004947\",\"type\":\"task\"}", 0);
char* enc_fetch_by_modified_time = curl_easy_escape(curl, "false", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&view_type=" + std::string(enc_view_type);
url += "&start_date=" + std::string(enc_start_date);
url += "&end_date=" + std::string(enc_end_date);
url += "&filter=" + std::string(enc_filter);
url += "&module=" + std::string(enc_module);
url += "&fetch_by_modified_time=" + std::string(enc_fetch_by_modified_time);
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_view_type);
curl_free(enc_start_date);
curl_free(enc_end_date);
curl_free(enc_filter);
curl_free(enc_module);
curl_free(enc_fetch_by_modified_time);
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-view_type (java.net.URLEncoder/encode "week" "UTF-8")
enc-start_date (java.net.URLEncoder/encode "2024-08-21" "UTF-8")
enc-end_date (java.net.URLEncoder/encode "2024-08-22" "UTF-8")
enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" "UTF-8")
enc-module (java.net.URLEncoder/encode "{\"id\":\"4000000004947\",\"type\":\"task\"}" "UTF-8")
enc-fetch_by_modified_time (java.net.URLEncoder/encode "false" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)" "?page=" enc-page "&per_page=" enc-per_page "&view_type=" enc-view_type "&start_date=" enc-start_date "&end_date=" enc-end_date "&filter=" enc-filter "&module=" enc-module "&fetch_by_modified_time=" enc-fetch_by_modified_time)]
(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/(timesheet|timelogs)", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("view_type", "week")
q.Add("start_date", "2024-08-21")
q.Add("end_date", "2024-08-22")
q.Add("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
q.Add("module", "{\"id\":\"4000000004947\",\"type\":\"task\"}")
q.Add("fetch_by_modified_time", "false")
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/(timesheet|timelogs)?page=1&per_page=10&view_type=week&start_date=2024-08-21&end_date=2024-08-22&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&module=%7B%22id%22%3A%224000000004947%22%2C%22type%22%3A%22task%22%7D&fetch_by_modified_time=false 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/(timesheet|timelogs)");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("view_type", "week");
uriBuilder.addParameter("start_date", "2024-08-21");
uriBuilder.addParameter("end_date", "2024-08-22");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}");
uriBuilder.addParameter("module", "{\"id\":\"4000000004947\",\"type\":\"task\"}");
uriBuilder.addParameter("fetch_by_modified_time", "false");
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/(timesheet|timelogs)';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'view_type': 'week',
'start_date': '2024-08-21',
'end_date': '2024-08-22',
'filter': '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'module': '{"id":"4000000004947","type":"task"}',
'fetch_by_modified_time': 'false'
});
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"
view_type = "week"
start_date = "2024-08-21"
end_date = "2024-08-22"
filter = {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}
module = {"id":"4000000004947","type":"task"}
fetch_by_modified_time = "false"
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/(timesheet|timelogs)".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("view_type", "week")
urlBuilder.addQueryParameter("start_date", "2024-08-21")
urlBuilder.addQueryParameter("end_date", "2024-08-22")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
urlBuilder.addQueryParameter("module", "{\"id\":\"4000000004947\",\"type\":\"task\"}")
urlBuilder.addQueryParameter("fetch_by_modified_time", "false")
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 *encodedView_type = [@"week" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedStart_date = [@"2024-08-21" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEnd_date = [@"2024-08-22" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedModule = [@"{\"id\":\"4000000004947\",\"type\":\"task\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFetch_by_modified_time = [@"false" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)?page=%@&per_page=%@&view_type=%@&start_date=%@&end_date=%@&filter=%@&module=%@&fetch_by_modified_time=%@", encodedPage, encodedPer_page, encodedView_type, encodedStart_date, encodedEnd_date, encodedFilter, encodedModule, encodedFetch_by_modified_time];
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_view_type = Uri.pct_encode "week" in
let enc_start_date = Uri.pct_encode "2024-08-21" in
let enc_end_date = Uri.pct_encode "2024-08-22" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" in
let enc_module = Uri.pct_encode "{\"id\":\"4000000004947\",\"type\":\"task\"}" in
let enc_fetch_by_modified_time = Uri.pct_encode "false" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&view_type=" ^ enc_view_type ^ "&start_date=" ^ enc_start_date ^ "&end_date=" ^ enc_end_date ^ "&filter=" ^ enc_filter ^ "&module=" ^ enc_module ^ "&fetch_by_modified_time=" ^ enc_fetch_by_modified_time) 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"
view_type = "week"
start_date = "2024-08-21"
end_date = "2024-08-22"
filter = "{`"criteria`":[{`"field_name`":`"user`",`"criteria_condition`":`"is`",`"value`":[`"4000000002411`"]},{`"field_name`":`"created_time`",`"criteria_condition`":`"Yesterday`",`"value`":[`"Yesterday`"]},{`"field_name`":`"billstatus`",`"criteria_condition`":`"is`",`"value`":[`"Non Billable`"]},{`"field_name`":`"approval_status`",`"criteria_condition`":`"is`",`"value`":[`"Approved`",`"Unapproved`"]},{`"field_name`":`"ts_single`",`"criteria_condition`":`"is`",`"value`":[`"single`"]}],`"pattern`":`"1 AND 2 AND 3 AND 4`"}"
module = "{`"id`":`"4000000004947`",`"type`":`"task`"}"
fetch_by_modified_time = "false"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)"
params <- list(
page = "1",
per_page = "10",
view_type = "week",
start_date = "2024-08-21",
end_date = "2024-08-22",
filter = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
module = "{\"id\":\"4000000004947\",\"type\":\"task\"}",
fetch_by_modified_time = "false"
)
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/(timesheet|timelogs)")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "view_type", value: "week"),
URLQueryItem(name: "start_date", value: "2024-08-21"),
URLQueryItem(name: "end_date", value: "2024-08-22"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}"),
URLQueryItem(name: "module", value: "{\"id\":\"4000000004947\",\"type\":\"task\"}"),
URLQueryItem(name: "fetch_by_modified_time", value: "false")
]
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 time logs from a project
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the view type. Accepted values: day, week, month, customdate, projectspan. Use customdate for a custom date range ? the difference between start_date and end_date must not exceed 6 months. When using projectspan, start_date and end_date are ignored.
String
Enter the start date of the time log range. Format: YYYY-MM-DD
String
Enter the end date of the time log range. Format: YYYY-MM-DD
JSONObject
requiredEnter the details of the module associated with the time log.
long
Enter the ID of the custom view to apply.
long
Enter the ID of the timesheet group to retrieve its time logs.
String
Enter the source page from which the API is called. Accepted values: timeloggroup_draft, timeloggroup_update, timeloggroup_regenerate
boolean
Specify whether to filter time logs by modified date instead of start date. 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)?page=1&per_page=10&view_type=week&start_date=2024-08-21&end_date=2024-08-22&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&module=%7B%22id%22%3A%224000000004947%22%2C%22type%22%3A%22task%22%7D&view_id=23806000074760021&timelog_group_id=-&frompage=mytimesheet&fetch_by_modified_time=false' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("view_type", "week");
params.put("start_date", "2024-08-21");
params.put("end_date", "2024-08-22");
params.put("filter", {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"});
params.put("module", {"id":"4000000004947","type":"task"});
params.put("view_id", "23806000074760021");
params.put("timelog_group_id", "-");
params.put("frompage", "mytimesheet");
params.put("fetch_by_modified_time", "false");
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/(timesheet|timelogs)');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('view_type', 'week');
url.searchParams.append('start_date', '2024-08-21');
url.searchParams.append('end_date', '2024-08-22');
url.searchParams.append('filter', '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}');
url.searchParams.append('module', '{"id":"4000000004947","type":"task"}');
url.searchParams.append('view_id', '23806000074760021');
url.searchParams.append('timelog_group_id', '-');
url.searchParams.append('frompage', 'mytimesheet');
url.searchParams.append('fetch_by_modified_time', 'false');
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/(timesheet|timelogs)")
params = {
"page" => "1",
"per_page" => "10",
"view_type" => "week",
"start_date" => "2024-08-21",
"end_date" => "2024-08-22",
"filter" => "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"module" => "{\"id\":\"4000000004947\",\"type\":\"task\"}",
"view_id" => "23806000074760021",
"timelog_group_id" => "-",
"frompage" => "mytimesheet",
"fetch_by_modified_time" => "false"
}
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',
'view_type' => 'week',
'start_date' => '2024-08-21',
'end_date' => '2024-08-22',
'filter' => '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'module' => '{"id":"4000000004947","type":"task"}',
'view_id' => '23806000074760021',
'timelog_group_id' => '-',
'frompage' => 'mytimesheet',
'fetch_by_modified_time' => 'false',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)" . "?" . 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/(timesheet|timelogs)"
params = {
"page": "1",
"per_page": "10",
"view_type": "week",
"start_date": "2024-08-21",
"end_date": "2024-08-22",
"filter": "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"module": "{\"id\":\"4000000004947\",\"type\":\"task\"}",
"view_id": "23806000074760021",
"timelog_group_id": "-",
"frompage": "mytimesheet",
"fetch_by_modified_time": "false"
}
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_view_type = curl_easy_escape(curl, "week", 0);
char *enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char *enc_end_date = curl_easy_escape(curl, "2024-08-22", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char *enc_module = curl_easy_escape(curl, "{\"id\":\"4000000004947\",\"type\":\"task\"}", 0);
char *enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
char *enc_timelog_group_id = curl_easy_escape(curl, "-", 0);
char *enc_frompage = curl_easy_escape(curl, "mytimesheet", 0);
char *enc_fetch_by_modified_time = curl_easy_escape(curl, "false", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)?page=%s&per_page=%s&view_type=%s&start_date=%s&end_date=%s&filter=%s&module=%s&view_id=%s&timelog_group_id=%s&frompage=%s&fetch_by_modified_time=%s", enc_page, enc_per_page, enc_view_type, enc_start_date, enc_end_date, enc_filter, enc_module, enc_view_id, enc_timelog_group_id, enc_frompage, enc_fetch_by_modified_time);
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_view_type);
curl_free(enc_start_date);
curl_free(enc_end_date);
curl_free(enc_filter);
curl_free(enc_module);
curl_free(enc_view_id);
curl_free(enc_timelog_group_id);
curl_free(enc_frompage);
curl_free(enc_fetch_by_modified_time);
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["view_type"] = "week";
query["start_date"] = "2024-08-21";
query["end_date"] = "2024-08-22";
query["filter"] = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}";
query["module"] = "{\"id\":\"4000000004947\",\"type\":\"task\"}";
query["view_id"] = "23806000074760021";
query["timelog_group_id"] = "-";
query["frompage"] = "mytimesheet";
query["fetch_by_modified_time"] = "false";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)") { 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_view_type = curl_easy_escape(curl, "week", 0);
char* enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char* enc_end_date = curl_easy_escape(curl, "2024-08-22", 0);
char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char* enc_module = curl_easy_escape(curl, "{\"id\":\"4000000004947\",\"type\":\"task\"}", 0);
char* enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
char* enc_timelog_group_id = curl_easy_escape(curl, "-", 0);
char* enc_frompage = curl_easy_escape(curl, "mytimesheet", 0);
char* enc_fetch_by_modified_time = curl_easy_escape(curl, "false", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&view_type=" + std::string(enc_view_type);
url += "&start_date=" + std::string(enc_start_date);
url += "&end_date=" + std::string(enc_end_date);
url += "&filter=" + std::string(enc_filter);
url += "&module=" + std::string(enc_module);
url += "&view_id=" + std::string(enc_view_id);
url += "&timelog_group_id=" + std::string(enc_timelog_group_id);
url += "&frompage=" + std::string(enc_frompage);
url += "&fetch_by_modified_time=" + std::string(enc_fetch_by_modified_time);
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_view_type);
curl_free(enc_start_date);
curl_free(enc_end_date);
curl_free(enc_filter);
curl_free(enc_module);
curl_free(enc_view_id);
curl_free(enc_timelog_group_id);
curl_free(enc_frompage);
curl_free(enc_fetch_by_modified_time);
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-view_type (java.net.URLEncoder/encode "week" "UTF-8")
enc-start_date (java.net.URLEncoder/encode "2024-08-21" "UTF-8")
enc-end_date (java.net.URLEncoder/encode "2024-08-22" "UTF-8")
enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" "UTF-8")
enc-module (java.net.URLEncoder/encode "{\"id\":\"4000000004947\",\"type\":\"task\"}" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "23806000074760021" "UTF-8")
enc-timelog_group_id (java.net.URLEncoder/encode "-" "UTF-8")
enc-frompage (java.net.URLEncoder/encode "mytimesheet" "UTF-8")
enc-fetch_by_modified_time (java.net.URLEncoder/encode "false" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)" "?page=" enc-page "&per_page=" enc-per_page "&view_type=" enc-view_type "&start_date=" enc-start_date "&end_date=" enc-end_date "&filter=" enc-filter "&module=" enc-module "&view_id=" enc-view_id "&timelog_group_id=" enc-timelog_group_id "&frompage=" enc-frompage "&fetch_by_modified_time=" enc-fetch_by_modified_time)]
(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/(timesheet|timelogs)", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("view_type", "week")
q.Add("start_date", "2024-08-21")
q.Add("end_date", "2024-08-22")
q.Add("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
q.Add("module", "{\"id\":\"4000000004947\",\"type\":\"task\"}")
q.Add("view_id", "23806000074760021")
q.Add("timelog_group_id", "-")
q.Add("frompage", "mytimesheet")
q.Add("fetch_by_modified_time", "false")
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/(timesheet|timelogs)?page=1&per_page=10&view_type=week&start_date=2024-08-21&end_date=2024-08-22&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&module=%7B%22id%22%3A%224000000004947%22%2C%22type%22%3A%22task%22%7D&view_id=23806000074760021&timelog_group_id=-&frompage=mytimesheet&fetch_by_modified_time=false 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/(timesheet|timelogs)");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("view_type", "week");
uriBuilder.addParameter("start_date", "2024-08-21");
uriBuilder.addParameter("end_date", "2024-08-22");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}");
uriBuilder.addParameter("module", "{\"id\":\"4000000004947\",\"type\":\"task\"}");
uriBuilder.addParameter("view_id", "23806000074760021");
uriBuilder.addParameter("timelog_group_id", "-");
uriBuilder.addParameter("frompage", "mytimesheet");
uriBuilder.addParameter("fetch_by_modified_time", "false");
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/(timesheet|timelogs)';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'view_type': 'week',
'start_date': '2024-08-21',
'end_date': '2024-08-22',
'filter': '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'module': '{"id":"4000000004947","type":"task"}',
'view_id': '23806000074760021',
'timelog_group_id': '-',
'frompage': 'mytimesheet',
'fetch_by_modified_time': 'false'
});
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"
view_type = "week"
start_date = "2024-08-21"
end_date = "2024-08-22"
filter = {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}
module = {"id":"4000000004947","type":"task"}
view_id = "23806000074760021"
timelog_group_id = -
frompage = "mytimesheet"
fetch_by_modified_time = "false"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/(timesheet|timelogs)".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("view_type", "week")
urlBuilder.addQueryParameter("start_date", "2024-08-21")
urlBuilder.addQueryParameter("end_date", "2024-08-22")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
urlBuilder.addQueryParameter("module", "{\"id\":\"4000000004947\",\"type\":\"task\"}")
urlBuilder.addQueryParameter("view_id", "23806000074760021")
urlBuilder.addQueryParameter("timelog_group_id", "-")
urlBuilder.addQueryParameter("frompage", "mytimesheet")
urlBuilder.addQueryParameter("fetch_by_modified_time", "false")
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 *encodedView_type = [@"week" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedStart_date = [@"2024-08-21" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEnd_date = [@"2024-08-22" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedModule = [@"{\"id\":\"4000000004947\",\"type\":\"task\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000074760021" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedTimelog_group_id = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFrompage = [@"mytimesheet" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFetch_by_modified_time = [@"false" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)?page=%@&per_page=%@&view_type=%@&start_date=%@&end_date=%@&filter=%@&module=%@&view_id=%@&timelog_group_id=%@&frompage=%@&fetch_by_modified_time=%@", encodedPage, encodedPer_page, encodedView_type, encodedStart_date, encodedEnd_date, encodedFilter, encodedModule, encodedView_id, encodedTimelog_group_id, encodedFrompage, encodedFetch_by_modified_time];
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_view_type = Uri.pct_encode "week" in
let enc_start_date = Uri.pct_encode "2024-08-21" in
let enc_end_date = Uri.pct_encode "2024-08-22" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" in
let enc_module = Uri.pct_encode "{\"id\":\"4000000004947\",\"type\":\"task\"}" in
let enc_view_id = Uri.pct_encode "23806000074760021" in
let enc_timelog_group_id = Uri.pct_encode "-" in
let enc_frompage = Uri.pct_encode "mytimesheet" in
let enc_fetch_by_modified_time = Uri.pct_encode "false" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&view_type=" ^ enc_view_type ^ "&start_date=" ^ enc_start_date ^ "&end_date=" ^ enc_end_date ^ "&filter=" ^ enc_filter ^ "&module=" ^ enc_module ^ "&view_id=" ^ enc_view_id ^ "&timelog_group_id=" ^ enc_timelog_group_id ^ "&frompage=" ^ enc_frompage ^ "&fetch_by_modified_time=" ^ enc_fetch_by_modified_time) 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"
view_type = "week"
start_date = "2024-08-21"
end_date = "2024-08-22"
filter = "{`"criteria`":[{`"field_name`":`"user`",`"criteria_condition`":`"is`",`"value`":[`"4000000002411`"]},{`"field_name`":`"created_time`",`"criteria_condition`":`"Yesterday`",`"value`":[`"Yesterday`"]},{`"field_name`":`"billstatus`",`"criteria_condition`":`"is`",`"value`":[`"Non Billable`"]},{`"field_name`":`"approval_status`",`"criteria_condition`":`"is`",`"value`":[`"Approved`",`"Unapproved`"]},{`"field_name`":`"ts_single`",`"criteria_condition`":`"is`",`"value`":[`"single`"]}],`"pattern`":`"1 AND 2 AND 3 AND 4`"}"
module = "{`"id`":`"4000000004947`",`"type`":`"task`"}"
view_id = "23806000074760021"
timelog_group_id = "-"
frompage = "mytimesheet"
fetch_by_modified_time = "false"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)" + "?" + $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/(timesheet|timelogs)"
params <- list(
page = "1",
per_page = "10",
view_type = "week",
start_date = "2024-08-21",
end_date = "2024-08-22",
filter = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
module = "{\"id\":\"4000000004947\",\"type\":\"task\"}",
view_id = "23806000074760021",
timelog_group_id = "-",
frompage = "mytimesheet",
fetch_by_modified_time = "false"
)
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/(timesheet|timelogs)")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "view_type", value: "week"),
URLQueryItem(name: "start_date", value: "2024-08-21"),
URLQueryItem(name: "end_date", value: "2024-08-22"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}"),
URLQueryItem(name: "module", value: "{\"id\":\"4000000004947\",\"type\":\"task\"}"),
URLQueryItem(name: "view_id", value: "23806000074760021"),
URLQueryItem(name: "timelog_group_id", value: "-"),
URLQueryItem(name: "frompage", value: "mytimesheet"),
URLQueryItem(name: "fetch_by_modified_time", value: "false")
]
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 multiple time logs to the Zoho Projects portal. Add multiple time log entries to a specific portal. Use this API to submit multiple time log entries in a single request.
OAuth Scope:
ZohoProjects.timesheets.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/addbulktimelogs' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"log_object" = [{"project_id":"23806000074760021","item_id":"-","log_name":"Enter a name for the general time log","type":"task","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner":"-","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","unique_key":"-","cost_rate_per_hour":"1"}]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs";
params = Map();
params.put("log_object", [{"project_id":"23806000074760021","item_id":"-","log_name":"Enter a name for the general time log","type":"task","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner":"-","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","unique_key":"-","cost_rate_per_hour":"1"}]);
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/addbulktimelogs');
url.searchParams.append('"log_object"', '[{"project_id":"23806000074760021","item_id":"-","log_name":"Enter a name for the general time log","type":"task","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner":"-","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","unique_key":"-","cost_rate_per_hour":"1"}]');
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/addbulktimelogs")
params = {
""log_object"" => "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]"
}
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 = [
'"log_object"' => '[{"project_id":"23806000074760021","item_id":"-","log_name":"Enter a name for the general time log","type":"task","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner":"-","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","unique_key":"-","cost_rate_per_hour":"1"}]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs" . "?" . 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/addbulktimelogs"
params = {
""log_object"": "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]"
}
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_"log_object" = curl_easy_escape(curl, "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs?\"log_object\"=%s", enc_"log_object");
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_"log_object");
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[""log_object""] = "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs") { 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_"log_object" = curl_easy_escape(curl, "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs";
url += "?"log_object"=" + std::string(enc_"log_object");
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_"log_object");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"log_object" (java.net.URLEncoder/encode "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs" "?"log_object"=" enc-"log_object")]
(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/addbulktimelogs", nil)
q := req.URL.Query()
q.Add(""log_object"", "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"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))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs?%22log_object%22=%5B%7B%22project_id%22%3A%2223806000074760021%22%2C%22item_id%22%3A%22-%22%2C%22log_name%22%3A%22Enter+a+name+for+the+general+time+log%22%2C%22type%22%3A%22task%22%2C%22date%22%3A%222024-12-11%22%2C%22bill_status%22%3A%22Billable%22%2C%22hours%22%3A%2201.00%22%2C%22notes%22%3A%22The+Timesheet+API+allows+users+to+manage+their+work+hours+by+tracking+time+entries%2C+submitting+time_logs.%22%2C%22owner%22%3A%22-%22%2C%22owner_zpuid%22%3A%228000000008075%22%2C%22approver%22%3A%2222822935%22%2C%22start_time%22%3A%2201%3A00+AM%22%2C%22end_time%22%3A%2202%3A00+AM%22%2C%22cf_user_picklist%22%3A%22-%22%2C%22cf_single_line%22%3A%22-%22%2C%22cf_multi_line%22%3A%22-%22%2C%22cf_email%22%3A%22-%22%2C%22cf_date%22%3A%22-%22%2C%22cf_decimal%22%3A%22-%22%2C%22cf_check_box%22%3A%22-%22%2C%22sprints_logid%22%3A%22-%22%2C%22status%22%3A%22on%22%2C%22unique_key%22%3A%22-%22%2C%22cost_rate_per_hour%22%3A%221%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/addbulktimelogs");
uriBuilder.addParameter(""log_object"", "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]");
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/addbulktimelogs';
const params = new URLSearchParams({
'"log_object"': '[{"project_id":"23806000074760021","item_id":"-","log_name":"Enter a name for the general time log","type":"task","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner":"-","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","unique_key":"-","cost_rate_per_hour":"1"}]'
});
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));
"log_object" = [{"project_id":"23806000074760021","item_id":"-","log_name":"Enter a name for the general time log","type":"task","date":"2024-12-11","bill_status":"Billable","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner":"-","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","sprints_logid":"-","status":"on","unique_key":"-","cost_rate_per_hour":"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/addbulktimelogs".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""log_object"", "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]")
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"log_object" = [@"[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs?"log_object"=%@", encoded"log_object"];
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_"log_object" = Uri.pct_encode "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs" ^ "?"log_object"=" ^ enc_"log_object") 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 = @{
"log_object" = "[{`"project_id`":`"23806000074760021`",`"item_id`":`"-`",`"log_name`":`"Enter a name for the general time log`",`"type`":`"task`",`"date`":`"2024-12-11`",`"bill_status`":`"Billable`",`"hours`":`"01.00`",`"notes`":`"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.`",`"owner`":`"-`",`"owner_zpuid`":`"8000000008075`",`"approver`":`"22822935`",`"start_time`":`"01:00 AM`",`"end_time`":`"02:00 AM`",`"cf_user_picklist`":`"-`",`"cf_single_line`":`"-`",`"cf_multi_line`":`"-`",`"cf_email`":`"-`",`"cf_date`":`"-`",`"cf_decimal`":`"-`",`"cf_check_box`":`"-`",`"sprints_logid`":`"-`",`"status`":`"on`",`"unique_key`":`"-`",`"cost_rate_per_hour`":`"1`"}]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/addbulktimelogs"
params <- list(
"log_object" = "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]"
)
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/addbulktimelogs")!
components.queryItems = [
URLQueryItem(name: ""log_object"", value: "[{\"project_id\":\"23806000074760021\",\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"type\":\"task\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner\":\"-\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"sprints_logid\":\"-\",\"status\":\"on\",\"unique_key\":\"-\",\"cost_rate_per_hour\":\"1\"}]")
]
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
Update multiple time log entries in the Zoho Projects portal. Use this API to modify multiple time log entries in a single request.
OAuth Scope:
ZohoProjects.timesheets.UPDATE
Parameter
long
requiredEnter the ID of the time log to update.
String
Enter the date of the time log. Format: YYYY-MM-DD
String
Enter the billing status of the time log. Accepted values: Billable, Non Billable
String
Enter the approval status of the time log. Accepted values: Approved, Unapproved, Rejected
String
Enter the number of hours to log.
String
max length : 10000Enter any additional notes for the time log.
long
Enter the ZPUID of the time log owner.
long
Enter the ZPUID of the approver for the time log.
String
Enter the start time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
String
Enter the end time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
String
requiredEnter the module associated with the time log. Accepted values: task, issue, general
long
Enter the name of the numeric custom field used during creation.
long
Enter the name of the user picklist custom field used during creation.
String
max length : 255Enter the name of the single-line custom field used during creation.
String
max length : 2000Enter the name of the multi-line text custom field used during creation.
String
max length : 255Enter the name of the email custom field used during creation.
String
Enter the name of the date custom field used during creation.
String
Enter the name of the decimal custom field used during creation.
String
Enter the name of the checkbox custom field used during creation.
JSONObject
Enter additional time entry details to log alongside the main entry.
double
Enter the cost per hour for the time log.
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/logs' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/logs";
params = List();
params.add({"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"});
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/logs');
const payload = JSON.stringify([{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]);
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/logs")
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 = '[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/logs";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]',
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/logs"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]'
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/logs");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "[{\"id\":\"4000000062001\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\"}]");
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/logs");
request.Content = new StringContent(
@"[{""id"":""4000000062001"",""date"":""2024-12-11"",""bill_status"":""Billable"",""approval_status"":""Approved"",""hours"":""01.00"",""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."",""owner_zpuid"":""8000000008075"",""approver"":""22822935"",""start_time"":""01:00 AM"",""end_time"":""02:00 AM"",""module"":{""id"":""4000000004947"",""type"":""task""},""cf_number"":""-"",""cf_user_picklist"":""-"",""cf_single_line"":""-"",""cf_multi_line"":""-"",""cf_email"":""-"",""cf_date"":""-"",""cf_decimal"":""-"",""cf_check_box"":""-"",""extra_data"":{""start_time"":""01:00 AM"",""end_time"":""02:00 AM"",""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.""},""cost_rate_per_hour"":""1""}]",
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/logs");
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, "[{\"id\":\"4000000062001\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\"}]");
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/logs"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "[{\"id\":\"4000000062001\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\"}]"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("[{\"id\":\"4000000062001\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\"}]")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/logs", 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/logs HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]
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/logs");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "[{\"id\":\"4000000062001\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\"}]";
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/logs';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify([{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}])
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]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/logs")
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("""[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/logs"];
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 = [@"[{\"id\":\"4000000062001\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\"}]" 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/logs" 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|[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]|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 = @'
[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/logs" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/logs"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "[{\"id\":\"4000000062001\",\"date\":\"2024-12-11\",\"bill_status\":\"Billable\",\"approval_status\":\"Approved\",\"hours\":\"01.00\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"owner_zpuid\":\"8000000008075\",\"approver\":\"22822935\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"cf_number\":\"-\",\"cf_user_picklist\":\"-\",\"cf_single_line\":\"-\",\"cf_multi_line\":\"-\",\"cf_email\":\"-\",\"cf_date\":\"-\",\"cf_decimal\":\"-\",\"cf_check_box\":\"-\",\"extra_data\":{\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"},\"cost_rate_per_hour\":\"1\"}]"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/logs")!
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 = """
[{"id":"4000000062001","date":"2024-12-11","bill_status":"Billable","approval_status":"Approved","hours":"01.00","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","owner_zpuid":"8000000008075","approver":"22822935","start_time":"01:00 AM","end_time":"02:00 AM","module":{"id":"4000000004947","type":"task"},"cf_number":"-","cf_user_picklist":"-","cf_single_line":"-","cf_multi_line":"-","cf_email":"-","cf_date":"-","cf_decimal":"-","cf_check_box":"-","extra_data":{"start_time":"01:00 AM","end_time":"02:00 AM","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."},"cost_rate_per_hour":"1"}]
""".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 multiple time log entries from a specific portal.
OAuth Scope:
ZohoProjects.timesheets.DELETE
Parameter
long
requiredEnter the log ID.
String
requiredEnter the log type. Accepted values : task,issue,general
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/(timesheet|timelogs)/bulkdelete' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"id":"4000000062001","module":{"id":"4000000004947","type":"task"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete";
params = Map();
params.put("id", "4000000062001");
params.put("module", {"id":"4000000004947","type":"task"});
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/(timesheet|timelogs)/bulkdelete');
const payload = JSON.stringify({"id":"4000000062001","module":{"id":"4000000004947","type":"task"}});
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/(timesheet|timelogs)/bulkdelete")
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 = '{"id":"4000000062001","module":{"id":"4000000004947","type":"task"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '{"id":"4000000062001","module":{"id":"4000000004947","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/(timesheet|timelogs)/bulkdelete"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"id":"4000000062001","module":{"id":"4000000004947","type":"task"}}'
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/(timesheet|timelogs)/bulkdelete");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"id\":\"4000000062001\",\"module\":{\"id\":\"4000000004947\",\"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.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete");
request.Content = new StringContent(
@"{""id"":""4000000062001"",""module"":{""id"":""4000000004947"",""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/(timesheet|timelogs)/bulkdelete");
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, "{\"id\":\"4000000062001\",\"module\":{\"id\":\"4000000004947\",\"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/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"id\":\"4000000062001\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"id\":\"4000000062001\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"}}")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete", 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/(timesheet|timelogs)/bulkdelete HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"id":"4000000062001","module":{"id":"4000000004947","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/(timesheet|timelogs)/bulkdelete");
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/(timesheet|timelogs)/bulkdelete';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"id":"4000000062001","module":{"id":"4000000004947","type":"task"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"id":"4000000062001","module":{"id":"4000000004947","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/(timesheet|timelogs)/bulkdelete")
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("""{"id":"4000000062001","module":{"id":"4000000004947","type":"task"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete"];
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 = [@"{\"id\":\"4000000062001\",\"module\":{\"id\":\"4000000004947\",\"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/(timesheet|timelogs)/bulkdelete" 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|{"id":"4000000062001","module":{"id":"4000000004947","type":"task"}}|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 = @'
{"id":"4000000062001","module":{"id":"4000000004947","type":"task"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"id\":\"4000000062001\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/bulkdelete")!
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 = """
{"id":"4000000062001","module":{"id":"4000000004947","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
This module covers operations related to time log reports within Zoho Projects. Use this API to retrieve time log reports at the portal or project level.
Retrieve time log reports from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
requiredEnter the report type. Accepted values: user, module
String
Enter the view type. Accepted values: day, week, month
String
Enter the start date of the report range. Format: YYYY-MM-DD
long
Enter the ID of the custom view to apply to the report.
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/(timesheet|timelogs)/report?page=1&per_page=10&report_type=user&view_type=week&start_date=2024-08-21&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&view_id=23806000074760021' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("report_type", "user");
params.put("view_type", "week");
params.put("start_date", "2024-08-21");
params.put("filter", {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"});
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/(timesheet|timelogs)/report');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('report_type', 'user');
url.searchParams.append('view_type', 'week');
url.searchParams.append('start_date', '2024-08-21');
url.searchParams.append('filter', '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}');
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/(timesheet|timelogs)/report")
params = {
"page" => "1",
"per_page" => "10",
"report_type" => "user",
"view_type" => "week",
"start_date" => "2024-08-21",
"filter" => "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"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',
'report_type' => 'user',
'view_type' => 'week',
'start_date' => '2024-08-21',
'filter' => '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'view_id' => '23806000074760021',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report" . "?" . 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/(timesheet|timelogs)/report"
params = {
"page": "1",
"per_page": "10",
"report_type": "user",
"view_type": "week",
"start_date": "2024-08-21",
"filter": "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"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_report_type = curl_easy_escape(curl, "user", 0);
char *enc_view_type = curl_easy_escape(curl, "week", 0);
char *enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 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/(timesheet|timelogs)/report?page=%s&per_page=%s&report_type=%s&view_type=%s&start_date=%s&filter=%s&view_id=%s", enc_page, enc_per_page, enc_report_type, enc_view_type, enc_start_date, enc_filter, 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_report_type);
curl_free(enc_view_type);
curl_free(enc_start_date);
curl_free(enc_filter);
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["report_type"] = "user";
query["view_type"] = "week";
query["start_date"] = "2024-08-21";
query["filter"] = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}";
query["view_id"] = "23806000074760021";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report") { 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_report_type = curl_easy_escape(curl, "user", 0);
char* enc_view_type = curl_easy_escape(curl, "week", 0);
char* enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char* enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&report_type=" + std::string(enc_report_type);
url += "&view_type=" + std::string(enc_view_type);
url += "&start_date=" + std::string(enc_start_date);
url += "&filter=" + std::string(enc_filter);
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_report_type);
curl_free(enc_view_type);
curl_free(enc_start_date);
curl_free(enc_filter);
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-report_type (java.net.URLEncoder/encode "user" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "week" "UTF-8")
enc-start_date (java.net.URLEncoder/encode "2024-08-21" "UTF-8")
enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "23806000074760021" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report" "?page=" enc-page "&per_page=" enc-per_page "&report_type=" enc-report_type "&view_type=" enc-view_type "&start_date=" enc-start_date "&filter=" enc-filter "&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/(timesheet|timelogs)/report", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("report_type", "user")
q.Add("view_type", "week")
q.Add("start_date", "2024-08-21")
q.Add("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
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/(timesheet|timelogs)/report?page=1&per_page=10&report_type=user&view_type=week&start_date=2024-08-21&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&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/(timesheet|timelogs)/report");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("report_type", "user");
uriBuilder.addParameter("view_type", "week");
uriBuilder.addParameter("start_date", "2024-08-21");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}");
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/(timesheet|timelogs)/report';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'report_type': 'user',
'view_type': 'week',
'start_date': '2024-08-21',
'filter': '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'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"
report_type = "user"
view_type = "week"
start_date = "2024-08-21"
filter = {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}
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/(timesheet|timelogs)/report".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("report_type", "user")
urlBuilder.addQueryParameter("view_type", "week")
urlBuilder.addQueryParameter("start_date", "2024-08-21")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
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 *encodedReport_type = [@"user" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"week" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedStart_date = [@"2024-08-21" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000074760021" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report?page=%@&per_page=%@&report_type=%@&view_type=%@&start_date=%@&filter=%@&view_id=%@", encodedPage, encodedPer_page, encodedReport_type, encodedView_type, encodedStart_date, encodedFilter, 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_report_type = Uri.pct_encode "user" in
let enc_view_type = Uri.pct_encode "week" in
let enc_start_date = Uri.pct_encode "2024-08-21" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" in
let enc_view_id = Uri.pct_encode "23806000074760021" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&report_type=" ^ enc_report_type ^ "&view_type=" ^ enc_view_type ^ "&start_date=" ^ enc_start_date ^ "&filter=" ^ enc_filter ^ "&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"
report_type = "user"
view_type = "week"
start_date = "2024-08-21"
filter = "{`"criteria`":[{`"field_name`":`"user`",`"criteria_condition`":`"is`",`"value`":[`"4000000002411`"]},{`"field_name`":`"created_time`",`"criteria_condition`":`"Yesterday`",`"value`":[`"Yesterday`"]},{`"field_name`":`"billstatus`",`"criteria_condition`":`"is`",`"value`":[`"Non Billable`"]},{`"field_name`":`"approval_status`",`"criteria_condition`":`"is`",`"value`":[`"Approved`",`"Unapproved`"]},{`"field_name`":`"ts_single`",`"criteria_condition`":`"is`",`"value`":[`"single`"]}],`"pattern`":`"1 AND 2 AND 3 AND 4`"}"
view_id = "23806000074760021"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/report"
params <- list(
page = "1",
per_page = "10",
report_type = "user",
view_type = "week",
start_date = "2024-08-21",
filter = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
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/(timesheet|timelogs)/report")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "report_type", value: "user"),
URLQueryItem(name: "view_type", value: "week"),
URLQueryItem(name: "start_date", value: "2024-08-21"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}"),
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 time log reports from a project
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
requiredEnter the report type. Accepted values: user, module
String
Enter the view type. Accepted values: day, week, month
String
Enter the start date of the report range. Format: YYYY-MM-DD
long
Enter the ID of the custom view to apply to the report.
long
Enter the ID of the timesheet group to retrieve its report.
String
Enter the source page from which the report is being accessed. Accepted values: timeloggroup_draft, timeloggroup_update, timeloggroup_regenerate
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/(timesheet|timelogs)/report?page=1&per_page=10&report_type=user&view_type=week&start_date=2024-08-21&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&view_id=23806000074760021&timelog_group_id=-&%22custom_range%22=%7B%22start_date%22%3A%222024-08-21%22%2C%22end_date%22%3A%222024-08-22%22%7D&frompage=mytimesheet' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("report_type", "user");
params.put("view_type", "week");
params.put("start_date", "2024-08-21");
params.put("filter", {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"});
params.put("view_id", "23806000074760021");
params.put("timelog_group_id", "-");
params.put("custom_range", {"start_date":"2024-08-21","end_date":"2024-08-22"});
params.put("frompage", "mytimesheet");
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/(timesheet|timelogs)/report');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('report_type', 'user');
url.searchParams.append('view_type', 'week');
url.searchParams.append('start_date', '2024-08-21');
url.searchParams.append('filter', '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}');
url.searchParams.append('view_id', '23806000074760021');
url.searchParams.append('timelog_group_id', '-');
url.searchParams.append('"custom_range"', '{"start_date":"2024-08-21","end_date":"2024-08-22"}');
url.searchParams.append('frompage', 'mytimesheet');
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/(timesheet|timelogs)/report")
params = {
"page" => "1",
"per_page" => "10",
"report_type" => "user",
"view_type" => "week",
"start_date" => "2024-08-21",
"filter" => "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"view_id" => "23806000074760021",
"timelog_group_id" => "-",
""custom_range"" => "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}",
"frompage" => "mytimesheet"
}
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',
'report_type' => 'user',
'view_type' => 'week',
'start_date' => '2024-08-21',
'filter' => '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'view_id' => '23806000074760021',
'timelog_group_id' => '-',
'"custom_range"' => '{"start_date":"2024-08-21","end_date":"2024-08-22"}',
'frompage' => 'mytimesheet',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report" . "?" . 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/(timesheet|timelogs)/report"
params = {
"page": "1",
"per_page": "10",
"report_type": "user",
"view_type": "week",
"start_date": "2024-08-21",
"filter": "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
"view_id": "23806000074760021",
"timelog_group_id": "-",
""custom_range"": "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}",
"frompage": "mytimesheet"
}
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_report_type = curl_easy_escape(curl, "user", 0);
char *enc_view_type = curl_easy_escape(curl, "week", 0);
char *enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char *enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
char *enc_timelog_group_id = curl_easy_escape(curl, "-", 0);
char *enc_"custom_range" = curl_easy_escape(curl, "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}", 0);
char *enc_frompage = curl_easy_escape(curl, "mytimesheet", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report?page=%s&per_page=%s&report_type=%s&view_type=%s&start_date=%s&filter=%s&view_id=%s&timelog_group_id=%s&\"custom_range\"=%s&frompage=%s", enc_page, enc_per_page, enc_report_type, enc_view_type, enc_start_date, enc_filter, enc_view_id, enc_timelog_group_id, enc_"custom_range", enc_frompage);
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_report_type);
curl_free(enc_view_type);
curl_free(enc_start_date);
curl_free(enc_filter);
curl_free(enc_view_id);
curl_free(enc_timelog_group_id);
curl_free(enc_"custom_range");
curl_free(enc_frompage);
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["report_type"] = "user";
query["view_type"] = "week";
query["start_date"] = "2024-08-21";
query["filter"] = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}";
query["view_id"] = "23806000074760021";
query["timelog_group_id"] = "-";
query[""custom_range""] = "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}";
query["frompage"] = "mytimesheet";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report") { 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_report_type = curl_easy_escape(curl, "user", 0);
char* enc_view_type = curl_easy_escape(curl, "week", 0);
char* enc_start_date = curl_easy_escape(curl, "2024-08-21", 0);
char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}", 0);
char* enc_view_id = curl_easy_escape(curl, "23806000074760021", 0);
char* enc_timelog_group_id = curl_easy_escape(curl, "-", 0);
char* enc_"custom_range" = curl_easy_escape(curl, "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}", 0);
char* enc_frompage = curl_easy_escape(curl, "mytimesheet", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&report_type=" + std::string(enc_report_type);
url += "&view_type=" + std::string(enc_view_type);
url += "&start_date=" + std::string(enc_start_date);
url += "&filter=" + std::string(enc_filter);
url += "&view_id=" + std::string(enc_view_id);
url += "&timelog_group_id=" + std::string(enc_timelog_group_id);
url += "&"custom_range"=" + std::string(enc_"custom_range");
url += "&frompage=" + std::string(enc_frompage);
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_report_type);
curl_free(enc_view_type);
curl_free(enc_start_date);
curl_free(enc_filter);
curl_free(enc_view_id);
curl_free(enc_timelog_group_id);
curl_free(enc_"custom_range");
curl_free(enc_frompage);
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-report_type (java.net.URLEncoder/encode "user" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "week" "UTF-8")
enc-start_date (java.net.URLEncoder/encode "2024-08-21" "UTF-8")
enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "23806000074760021" "UTF-8")
enc-timelog_group_id (java.net.URLEncoder/encode "-" "UTF-8")
enc-"custom_range" (java.net.URLEncoder/encode "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}" "UTF-8")
enc-frompage (java.net.URLEncoder/encode "mytimesheet" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report" "?page=" enc-page "&per_page=" enc-per_page "&report_type=" enc-report_type "&view_type=" enc-view_type "&start_date=" enc-start_date "&filter=" enc-filter "&view_id=" enc-view_id "&timelog_group_id=" enc-timelog_group_id "&"custom_range"=" enc-"custom_range" "&frompage=" enc-frompage)]
(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/(timesheet|timelogs)/report", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("report_type", "user")
q.Add("view_type", "week")
q.Add("start_date", "2024-08-21")
q.Add("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
q.Add("view_id", "23806000074760021")
q.Add("timelog_group_id", "-")
q.Add(""custom_range"", "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}")
q.Add("frompage", "mytimesheet")
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/(timesheet|timelogs)/report?page=1&per_page=10&report_type=user&view_type=week&start_date=2024-08-21&filter=%7B%22criteria%22%3A%5B%7B%22field_name%22%3A%22user%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%224000000002411%22%5D%7D%2C%7B%22field_name%22%3A%22created_time%22%2C%22criteria_condition%22%3A%22Yesterday%22%2C%22value%22%3A%5B%22Yesterday%22%5D%7D%2C%7B%22field_name%22%3A%22billstatus%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Non+Billable%22%5D%7D%2C%7B%22field_name%22%3A%22approval_status%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22Approved%22%2C%22Unapproved%22%5D%7D%2C%7B%22field_name%22%3A%22ts_single%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%22single%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2+AND+3+AND+4%22%7D&view_id=23806000074760021&timelog_group_id=-&%22custom_range%22=%7B%22start_date%22%3A%222024-08-21%22%2C%22end_date%22%3A%222024-08-22%22%7D&frompage=mytimesheet 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/(timesheet|timelogs)/report");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("report_type", "user");
uriBuilder.addParameter("view_type", "week");
uriBuilder.addParameter("start_date", "2024-08-21");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}");
uriBuilder.addParameter("view_id", "23806000074760021");
uriBuilder.addParameter("timelog_group_id", "-");
uriBuilder.addParameter(""custom_range"", "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}");
uriBuilder.addParameter("frompage", "mytimesheet");
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/(timesheet|timelogs)/report';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'report_type': 'user',
'view_type': 'week',
'start_date': '2024-08-21',
'filter': '{"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}',
'view_id': '23806000074760021',
'timelog_group_id': '-',
'"custom_range"': '{"start_date":"2024-08-21","end_date":"2024-08-22"}',
'frompage': 'mytimesheet'
});
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"
report_type = "user"
view_type = "week"
start_date = "2024-08-21"
filter = {"criteria":[{"field_name":"user","criteria_condition":"is","value":["4000000002411"]},{"field_name":"created_time","criteria_condition":"Yesterday","value":["Yesterday"]},{"field_name":"billstatus","criteria_condition":"is","value":["Non Billable"]},{"field_name":"approval_status","criteria_condition":"is","value":["Approved","Unapproved"]},{"field_name":"ts_single","criteria_condition":"is","value":["single"]}],"pattern":"1 AND 2 AND 3 AND 4"}
view_id = "23806000074760021"
timelog_group_id = -
"custom_range" = {"start_date":"2024-08-21","end_date":"2024-08-22"}
frompage = "mytimesheet"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/(timesheet|timelogs)/report".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("report_type", "user")
urlBuilder.addQueryParameter("view_type", "week")
urlBuilder.addQueryParameter("start_date", "2024-08-21")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}")
urlBuilder.addQueryParameter("view_id", "23806000074760021")
urlBuilder.addQueryParameter("timelog_group_id", "-")
urlBuilder.addQueryParameter(""custom_range"", "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}")
urlBuilder.addQueryParameter("frompage", "mytimesheet")
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 *encodedReport_type = [@"user" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"week" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedStart_date = [@"2024-08-21" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"23806000074760021" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedTimelog_group_id = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"custom_range" = [@"{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFrompage = [@"mytimesheet" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report?page=%@&per_page=%@&report_type=%@&view_type=%@&start_date=%@&filter=%@&view_id=%@&timelog_group_id=%@&"custom_range"=%@&frompage=%@", encodedPage, encodedPer_page, encodedReport_type, encodedView_type, encodedStart_date, encodedFilter, encodedView_id, encodedTimelog_group_id, encoded"custom_range", encodedFrompage];
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_report_type = Uri.pct_encode "user" in
let enc_view_type = Uri.pct_encode "week" in
let enc_start_date = Uri.pct_encode "2024-08-21" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}" in
let enc_view_id = Uri.pct_encode "23806000074760021" in
let enc_timelog_group_id = Uri.pct_encode "-" in
let enc_"custom_range" = Uri.pct_encode "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}" in
let enc_frompage = Uri.pct_encode "mytimesheet" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&report_type=" ^ enc_report_type ^ "&view_type=" ^ enc_view_type ^ "&start_date=" ^ enc_start_date ^ "&filter=" ^ enc_filter ^ "&view_id=" ^ enc_view_id ^ "&timelog_group_id=" ^ enc_timelog_group_id ^ "&"custom_range"=" ^ enc_"custom_range" ^ "&frompage=" ^ enc_frompage) 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"
report_type = "user"
view_type = "week"
start_date = "2024-08-21"
filter = "{`"criteria`":[{`"field_name`":`"user`",`"criteria_condition`":`"is`",`"value`":[`"4000000002411`"]},{`"field_name`":`"created_time`",`"criteria_condition`":`"Yesterday`",`"value`":[`"Yesterday`"]},{`"field_name`":`"billstatus`",`"criteria_condition`":`"is`",`"value`":[`"Non Billable`"]},{`"field_name`":`"approval_status`",`"criteria_condition`":`"is`",`"value`":[`"Approved`",`"Unapproved`"]},{`"field_name`":`"ts_single`",`"criteria_condition`":`"is`",`"value`":[`"single`"]}],`"pattern`":`"1 AND 2 AND 3 AND 4`"}"
view_id = "23806000074760021"
timelog_group_id = "-"
"custom_range" = "{`"start_date`":`"2024-08-21`",`"end_date`":`"2024-08-22`"}"
frompage = "mytimesheet"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/report" + "?" + $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/(timesheet|timelogs)/report"
params <- list(
page = "1",
per_page = "10",
report_type = "user",
view_type = "week",
start_date = "2024-08-21",
filter = "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}",
view_id = "23806000074760021",
timelog_group_id = "-",
"custom_range" = "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}",
frompage = "mytimesheet"
)
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/(timesheet|timelogs)/report")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "report_type", value: "user"),
URLQueryItem(name: "view_type", value: "week"),
URLQueryItem(name: "start_date", value: "2024-08-21"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"field_name\":\"user\",\"criteria_condition\":\"is\",\"value\":[\"4000000002411\"]},{\"field_name\":\"created_time\",\"criteria_condition\":\"Yesterday\",\"value\":[\"Yesterday\"]},{\"field_name\":\"billstatus\",\"criteria_condition\":\"is\",\"value\":[\"Non Billable\"]},{\"field_name\":\"approval_status\",\"criteria_condition\":\"is\",\"value\":[\"Approved\",\"Unapproved\"]},{\"field_name\":\"ts_single\",\"criteria_condition\":\"is\",\"value\":[\"single\"]}],\"pattern\":\"1 AND 2 AND 3 AND 4\"}"),
URLQueryItem(name: "view_id", value: "23806000074760021"),
URLQueryItem(name: "timelog_group_id", value: "-"),
URLQueryItem(name: ""custom_range"", value: "{\"start_date\":\"2024-08-21\",\"end_date\":\"2024-08-22\"}"),
URLQueryItem(name: "frompage", value: "mytimesheet")
]
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
This module covers operations related to time log approval within Zoho Projects. Use this API to retrieve and update default time log approvers.
Retrieve the default time log approver for a user in a specific project.
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
long
-
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/(timesheet|timelogs)/approver?user=-&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver";
params = Map();
params.put("user", "-");
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/(timesheet|timelogs)/approver');
url.searchParams.append('user', '-');
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/(timesheet|timelogs)/approver")
params = {
"user" => "-",
"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 = [
'user' => '-',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver" . "?" . 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/(timesheet|timelogs)/approver"
params = {
"user": "-",
"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_user = curl_easy_escape(curl, "-", 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/(timesheet|timelogs)/approver?user=%s&page=%s&per_page=%s", enc_user, 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_user);
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["user"] = "-";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver") { 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_user = curl_easy_escape(curl, "-", 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/(timesheet|timelogs)/approver";
url += "?user=" + std::string(enc_user);
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_user);
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-user (java.net.URLEncoder/encode "-" "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/(timesheet|timelogs)/approver" "?user=" enc-user "&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/(timesheet|timelogs)/approver", nil)
q := req.URL.Query()
q.Add("user", "-")
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/(timesheet|timelogs)/approver?user=-&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/(timesheet|timelogs)/approver");
uriBuilder.addParameter("user", "-");
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/(timesheet|timelogs)/approver';
const params = new URLSearchParams({
'user': '-',
'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));
user = -
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/(timesheet|timelogs)/approver".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("user", "-")
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 *encodedUser = [@"-" 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/(timesheet|timelogs)/approver?user=%@&page=%@&per_page=%@", encodedUser, 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_user = Uri.pct_encode "-" 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/(timesheet|timelogs)/approver" ^ "?user=" ^ enc_user ^ "&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 = @{
user = "-"
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/(timesheet|timelogs)/approver" + "?" + $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/(timesheet|timelogs)/approver"
params <- list(
user = "-",
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/(timesheet|timelogs)/approver")!
components.queryItems = [
URLQueryItem(name: "user", value: "-"),
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
Modify the default time log approver of the user in a project.
OAuth Scope:
ZohoProjects.timesheets.UPDATE
Parameter
long
Enter the ZPUID of the user.
long
Enter the ZPUID of the approver.
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/(timesheet|timelogs)/approver' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"user":"-","approver":"22822935"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver";
params = Map();
params.put("user", "-");
params.put("approver", "22822935");
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/(timesheet|timelogs)/approver');
const payload = JSON.stringify({"user":"-","approver":"22822935"});
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/(timesheet|timelogs)/approver")
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 = '{"user":"-","approver":"22822935"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"user":"-","approver":"22822935"}',
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/(timesheet|timelogs)/approver"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"user":"-","approver":"22822935"}'
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/(timesheet|timelogs)/approver");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"user\":\"-\",\"approver\":\"22822935\"}");
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/(timesheet|timelogs)/approver");
request.Content = new StringContent(
@"{""user"":""-"",""approver"":""22822935""}",
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/(timesheet|timelogs)/approver");
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, "{\"user\":\"-\",\"approver\":\"22822935\"}");
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/(timesheet|timelogs)/approver"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"user\":\"-\",\"approver\":\"22822935\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"user\":\"-\",\"approver\":\"22822935\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver", 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/(timesheet|timelogs)/approver HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"user":"-","approver":"22822935"}
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/(timesheet|timelogs)/approver");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"user\":\"-\",\"approver\":\"22822935\"}";
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/(timesheet|timelogs)/approver';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"user":"-","approver":"22822935"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"user":"-","approver":"22822935"}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/(timesheet|timelogs)/approver")
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("""{"user":"-","approver":"22822935"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver"];
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 = [@"{\"user\":\"-\",\"approver\":\"22822935\"}" 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/(timesheet|timelogs)/approver" 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|{"user":"-","approver":"22822935"}|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 = @'
{"user":"-","approver":"22822935"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"user\":\"-\",\"approver\":\"22822935\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/approver")!
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 = """
{"user":"-","approver":"22822935"}
""".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 pinned time logs within Zoho Projects. Use this API to create, update, retrieve, or delete user pins associated with time logs.
Retrieve all pinned entries from the time logs weekly form for a specific project. Use this API to access the list of pinned time log entries within a project's weekly form.
OAuth Scope:
ZohoProjects.timesheets.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/(timesheet|timelogs)/pin' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/pin";
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/(timesheet|timelogs)/pin');
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/(timesheet|timelogs)/pin")
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/(timesheet|timelogs)/pin";
$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/(timesheet|timelogs)/pin"
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/(timesheet|timelogs)/pin");
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/(timesheet|timelogs)/pin");
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/(timesheet|timelogs)/pin");
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/(timesheet|timelogs)/pin"
{: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/(timesheet|timelogs)/pin", 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/(timesheet|timelogs)/pin 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/(timesheet|timelogs)/pin");
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/(timesheet|timelogs)/pin';
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/(timesheet|timelogs)/pin")
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/(timesheet|timelogs)/pin"];
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/(timesheet|timelogs)/pin" 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/(timesheet|timelogs)/pin" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(timesheet|timelogs)/pin"
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/(timesheet|timelogs)/pin")!
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 all pinned entries from the time logs weekly form for a specific portal. Use this API to access the list of pinned time log entries across a portal.
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
String
Enter the pin 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/(timesheet|timelogs)/pin?pinId=23806000067962644' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin";
params = Map();
params.put("pinId", "23806000067962644");
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/(timesheet|timelogs)/pin');
url.searchParams.append('pinId', '23806000067962644');
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/(timesheet|timelogs)/pin")
params = {
"pinId" => "23806000067962644"
}
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 = [
'pinId' => '23806000067962644',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin" . "?" . 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/(timesheet|timelogs)/pin"
params = {
"pinId": "23806000067962644"
}
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_pinId = curl_easy_escape(curl, "23806000067962644", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin?pinId=%s", enc_pinId);
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_pinId);
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["pinId"] = "23806000067962644";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin") { 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_pinId = curl_easy_escape(curl, "23806000067962644", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin";
url += "?pinId=" + std::string(enc_pinId);
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_pinId);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-pinId (java.net.URLEncoder/encode "23806000067962644" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin" "?pinId=" enc-pinId)]
(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/(timesheet|timelogs)/pin", nil)
q := req.URL.Query()
q.Add("pinId", "23806000067962644")
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/(timesheet|timelogs)/pin?pinId=23806000067962644 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/(timesheet|timelogs)/pin");
uriBuilder.addParameter("pinId", "23806000067962644");
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/(timesheet|timelogs)/pin';
const params = new URLSearchParams({
'pinId': '23806000067962644'
});
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));
pinId = "23806000067962644"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/(timesheet|timelogs)/pin".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("pinId", "23806000067962644")
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 *encodedPinId = [@"23806000067962644" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin?pinId=%@", encodedPinId];
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_pinId = Uri.pct_encode "23806000067962644" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin" ^ "?pinId=" ^ enc_pinId) 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 = @{
pinId = "23806000067962644"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin"
params <- list(
pinId = "23806000067962644"
)
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/(timesheet|timelogs)/pin")!
components.queryItems = [
URLQueryItem(name: "pinId", value: "23806000067962644")
]
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
Remove a pinned entry from the time logs for a portal.
OAuth Scope:
ZohoProjects.timesheets.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/(timesheet|timelogs)/pin/[PINID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]";
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/(timesheet|timelogs)/pin/[PINID]');
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/(timesheet|timelogs)/pin/[PINID]")
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/(timesheet|timelogs)/pin/[PINID]";
$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/(timesheet|timelogs)/pin/[PINID]"
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/(timesheet|timelogs)/pin/[PINID]");
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/(timesheet|timelogs)/pin/[PINID]");
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/(timesheet|timelogs)/pin/[PINID]");
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/(timesheet|timelogs)/pin/[PINID]"
{: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/(timesheet|timelogs)/pin/[PINID]", 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/(timesheet|timelogs)/pin/[PINID] 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/(timesheet|timelogs)/pin/[PINID]");
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/(timesheet|timelogs)/pin/[PINID]';
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/(timesheet|timelogs)/pin/[PINID]")
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/(timesheet|timelogs)/pin/[PINID]"];
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/(timesheet|timelogs)/pin/[PINID]" 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/(timesheet|timelogs)/pin/[PINID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]"
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/(timesheet|timelogs)/pin/[PINID]")!
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
Pin a time log in the Zoho Projects Portal. Use this API to mark a time log entry as pinned for quick access in the weekly form.
OAuth Scope:
ZohoProjects.timesheets.CREATE
Parameter
long
Enter the ID of the project to pin the time log entry.
String
Enter the module name associated with the time log entry.
boolean
Specify whether the time log entry is billable. Accepted values: true or false
String
Enter the ZPUID of the user to associate with the pin.
int
Enter the sequence order of the pin in the weekly form.
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/(timesheet|timelogs)/pin' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin";
params = Map();
params.put("project_id", "23806000074760021");
params.put("module", {"id":"4000000004947","type":"task"});
params.put("is_billing", "false");
params.put("zpuid", "4000000002055");
params.put("sequence", "5");
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/(timesheet|timelogs)/pin');
const payload = JSON.stringify({"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"});
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/(timesheet|timelogs)/pin")
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 = '{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}',
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/(timesheet|timelogs)/pin"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}'
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/(timesheet|timelogs)/pin");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"project_id\":\"23806000074760021\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}");
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/(timesheet|timelogs)/pin");
request.Content = new StringContent(
@"{""project_id"":""23806000074760021"",""module"":{""id"":""4000000004947"",""type"":""task""},""is_billing"":""false"",""zpuid"":""4000000002055"",""sequence"":""5""}",
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/(timesheet|timelogs)/pin");
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, "{\"project_id\":\"23806000074760021\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}");
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/(timesheet|timelogs)/pin"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"project_id\":\"23806000074760021\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"project_id\":\"23806000074760021\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin", 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/(timesheet|timelogs)/pin HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}
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/(timesheet|timelogs)/pin");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"project_id\":\"23806000074760021\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}";
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/(timesheet|timelogs)/pin';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}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/(timesheet|timelogs)/pin")
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("""{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin"];
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 = [@"{\"project_id\":\"23806000074760021\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}" 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/(timesheet|timelogs)/pin" 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|{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}|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 = @'
{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"project_id\":\"23806000074760021\",\"module\":{\"id\":\"4000000004947\",\"type\":\"task\"},\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin")!
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 = """
{"project_id":"23806000074760021","module":{"id":"4000000004947","type":"task"},"is_billing":"false","zpuid":"4000000002055","sequence":"5"}
""".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
Update an existing pinned entry in the time logs for a portal. Use this API to modify the details of a pinned time log entry in the weekly form.
OAuth Scope:
ZohoProjects.timesheets.CREATE
Parameter
long
Enter the ID of the project associated with the pin.
String
Enter the module name associated with the pinned time log entry.
boolean
Specify whether the time log entry is billable. Accepted values: true or false
String
Enter the ZPUID of the user associated with the pin.
int
Enter the sequence order of the pin in the weekly form.
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/(timesheet|timelogs)/pin/[PINID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]";
params = Map();
params.put("project_id", "23806000074760021");
params.put("module", "task");
params.put("is_billing", "false");
params.put("zpuid", "4000000002055");
params.put("sequence", "5");
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/(timesheet|timelogs)/pin/[PINID]');
const payload = JSON.stringify({"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"});
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/(timesheet|timelogs)/pin/[PINID]")
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 = '{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}',
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/(timesheet|timelogs)/pin/[PINID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}'
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/(timesheet|timelogs)/pin/[PINID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"project_id\":\"23806000074760021\",\"module\":\"task\",\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}");
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/(timesheet|timelogs)/pin/[PINID]");
request.Content = new StringContent(
@"{""project_id"":""23806000074760021"",""module"":""task"",""is_billing"":""false"",""zpuid"":""4000000002055"",""sequence"":""5""}",
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/(timesheet|timelogs)/pin/[PINID]");
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, "{\"project_id\":\"23806000074760021\",\"module\":\"task\",\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}");
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/(timesheet|timelogs)/pin/[PINID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"project_id\":\"23806000074760021\",\"module\":\"task\",\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"project_id\":\"23806000074760021\",\"module\":\"task\",\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]", 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/(timesheet|timelogs)/pin/[PINID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}
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/(timesheet|timelogs)/pin/[PINID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"project_id\":\"23806000074760021\",\"module\":\"task\",\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}";
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/(timesheet|timelogs)/pin/[PINID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}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/(timesheet|timelogs)/pin/[PINID]")
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("""{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]"];
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 = [@"{\"project_id\":\"23806000074760021\",\"module\":\"task\",\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}" 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/(timesheet|timelogs)/pin/[PINID]" 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|{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}|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 = @'
{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"project_id\":\"23806000074760021\",\"module\":\"task\",\"is_billing\":\"false\",\"zpuid\":\"4000000002055\",\"sequence\":\"5\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/pin/[PINID]")!
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 = """
{"project_id":"23806000074760021","module":"task","is_billing":"false","zpuid":"4000000002055","sequence":"5"}
""".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
This module covers timer related operations within Zoho Projects. Use this API to start, pause, resume, stop, or delete timers and retrieve timer details by log ID.
Retrieve all running timers from the Zoho Projects portal
OAuth Scope:
ZohoProjects.timesheets.READ
Query Parameter
String
Enter the type of timers to retrieve. Accepted values: all, generic, task, issue
String
Specify whether to retrieve timers of all 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers?type=all&for_all=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers";
params = Map();
params.put("type", "all");
params.put("for_all", "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/(timesheet|timelogs)/timers');
url.searchParams.append('type', 'all');
url.searchParams.append('for_all', '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/(timesheet|timelogs)/timers")
params = {
"type" => "all",
"for_all" => "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 = [
'type' => 'all',
'for_all' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers" . "?" . 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/(timesheet|timelogs)/timers"
params = {
"type": "all",
"for_all": "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_type = curl_easy_escape(curl, "all", 0);
char *enc_for_all = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers?type=%s&for_all=%s", enc_type, enc_for_all);
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_for_all);
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"] = "all";
query["for_all"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers") { 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, "all", 0);
char* enc_for_all = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers";
url += "?type=" + std::string(enc_type);
url += "&for_all=" + std::string(enc_for_all);
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_for_all);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-type (java.net.URLEncoder/encode "all" "UTF-8")
enc-for_all (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers" "?type=" enc-type "&for_all=" enc-for_all)]
(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/(timesheet|timelogs)/timers", nil)
q := req.URL.Query()
q.Add("type", "all")
q.Add("for_all", "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/(timesheet|timelogs)/timers?type=all&for_all=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/(timesheet|timelogs)/timers");
uriBuilder.addParameter("type", "all");
uriBuilder.addParameter("for_all", "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/(timesheet|timelogs)/timers';
const params = new URLSearchParams({
'type': 'all',
'for_all': '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));
type = "all"
for_all = "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/(timesheet|timelogs)/timers".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("type", "all")
urlBuilder.addQueryParameter("for_all", "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 *encodedType = [@"all" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFor_all = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers?type=%@&for_all=%@", encodedType, encodedFor_all];
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 "all" in
let enc_for_all = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers" ^ "?type=" ^ enc_type ^ "&for_all=" ^ enc_for_all) 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 = "all"
for_all = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers"
params <- list(
type = "all",
for_all = "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/(timesheet|timelogs)/timers")!
components.queryItems = [
URLQueryItem(name: "type", value: "all"),
URLQueryItem(name: "for_all", 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
Start a new timer for a specific portal.
OAuth Scope:
ZohoProjects.timesheets.CREATE
Parameter
String
Enter the ID of the entity to start the timer for.
String
Enter the ID of the project to start the timer for.
String
Enter the ID of the module to start the timer for.
String
Specify whether to check for existing running timers before starting a new one. 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/(timesheet|timelogs)/timers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"true"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers";
params = Map();
params.put("entity_id", "1752587000000094001");
params.put("project_id", "23806000074760021");
params.put("module_id", "1752587000000097269");
params.put("check_existing_timers", "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/(timesheet|timelogs)/timers');
const payload = JSON.stringify({"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"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/(timesheet|timelogs)/timers")
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 = '{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"true"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"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/(timesheet|timelogs)/timers"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"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/(timesheet|timelogs)/timers");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"entity_id\":\"1752587000000094001\",\"project_id\":\"23806000074760021\",\"module_id\":\"1752587000000097269\",\"check_existing_timers\":\"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/(timesheet|timelogs)/timers");
request.Content = new StringContent(
@"{""entity_id"":""1752587000000094001"",""project_id"":""23806000074760021"",""module_id"":""1752587000000097269"",""check_existing_timers"":""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/(timesheet|timelogs)/timers");
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, "{\"entity_id\":\"1752587000000094001\",\"project_id\":\"23806000074760021\",\"module_id\":\"1752587000000097269\",\"check_existing_timers\":\"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/(timesheet|timelogs)/timers"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"entity_id\":\"1752587000000094001\",\"project_id\":\"23806000074760021\",\"module_id\":\"1752587000000097269\",\"check_existing_timers\":\"true\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"entity_id\":\"1752587000000094001\",\"project_id\":\"23806000074760021\",\"module_id\":\"1752587000000097269\",\"check_existing_timers\":\"true\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers", 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/(timesheet|timelogs)/timers HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"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/(timesheet|timelogs)/timers");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"entity_id\":\"1752587000000094001\",\"project_id\":\"23806000074760021\",\"module_id\":\"1752587000000097269\",\"check_existing_timers\":\"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/(timesheet|timelogs)/timers';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"true"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"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/(timesheet|timelogs)/timers")
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("""{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"true"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers"];
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 = [@"{\"entity_id\":\"1752587000000094001\",\"project_id\":\"23806000074760021\",\"module_id\":\"1752587000000097269\",\"check_existing_timers\":\"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/(timesheet|timelogs)/timers" 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|{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"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 = @'
{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"true"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"entity_id\":\"1752587000000094001\",\"project_id\":\"23806000074760021\",\"module_id\":\"1752587000000097269\",\"check_existing_timers\":\"true\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers")!
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 = """
{"entity_id":"1752587000000094001","project_id":"23806000074760021","module_id":"1752587000000097269","check_existing_timers":"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
Retrieve timer details for a specific time log entry in a project. Use this API to access the timer information associated with a particular time log entry.
OAuth Scope:
ZohoProjects.timesheets.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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers";
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers');
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers")
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers";
$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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"
{: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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers", 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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers 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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers';
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers")
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"];
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers" 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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers")!
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
Modify the notes for a timer associated with a specific time log entry in a project.
OAuth Scope:
ZohoProjects.timesheets.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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers";
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers');
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers")
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers";
$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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"
{: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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers", 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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers 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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers");
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers';
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers")
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"];
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers" 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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers"
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/(task|issue)/(timesheet|timelogs)/[(TIMESHEET|TIMELOGS)ID]/timers")!
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
Pause a running timer in the Zoho Projects portal. Use this API to temporarily stop a running timer without deleting the tracked time.
OAuth Scope:
ZohoProjects.timesheets.CREATE
Parameter
String
Enter any additional notes for the timer.
String
Enter the module type of the timer. Accepted values: task, issue, general
long
Enter the ID of the time log associated with the timer.
long
Enter the ID of the module associated with the timer.
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/(timesheet|timelogs)/timers/[TIMERID]/pause' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/pause";
params = Map();
params.put("notes", "The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.");
params.put("type", "task");
params.put("log_id", "8000000011005");
params.put("entity_id", "1752587000000094001");
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/(timesheet|timelogs)/timers/[TIMERID]/pause');
const payload = JSON.stringify({"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"});
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/(timesheet|timelogs)/timers/[TIMERID]/pause")
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 = '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/pause";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}',
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/(timesheet|timelogs)/timers/[TIMERID]/pause"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}'
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/(timesheet|timelogs)/timers/[TIMERID]/pause");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}");
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/(timesheet|timelogs)/timers/[TIMERID]/pause");
request.Content = new StringContent(
@"{""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."",""type"":""task"",""log_id"":""8000000011005"",""entity_id"":""1752587000000094001""}",
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/(timesheet|timelogs)/timers/[TIMERID]/pause");
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, "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}");
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/(timesheet|timelogs)/timers/[TIMERID]/pause"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/pause", 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/(timesheet|timelogs)/timers/[TIMERID]/pause HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}
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/(timesheet|timelogs)/timers/[TIMERID]/pause");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}";
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/(timesheet|timelogs)/timers/[TIMERID]/pause';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}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/(timesheet|timelogs)/timers/[TIMERID]/pause")
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("""{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/pause"];
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 = [@"{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}" 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/(timesheet|timelogs)/timers/[TIMERID]/pause" 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|{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}|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 = @'
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/pause" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/pause"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/pause")!
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 = """
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}
""".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
Resume a paused timer in the Zoho Projects portal. Use this API to continue tracking time on a previously paused timer.
OAuth Scope:
ZohoProjects.timesheets.CREATE
Parameter
String
Enter any additional notes for the timer.
String
Enter the module type of the timer. Accepted values: task, issue, general
long
Enter the ID of the time log associated with the timer.
long
Enter the ID of the module associated with the timer.
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/(timesheet|timelogs)/timers/[TIMERID]/resume' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/resume";
params = Map();
params.put("notes", "The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.");
params.put("type", "task");
params.put("log_id", "8000000011005");
params.put("entity_id", "1752587000000094001");
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/(timesheet|timelogs)/timers/[TIMERID]/resume');
const payload = JSON.stringify({"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"});
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/(timesheet|timelogs)/timers/[TIMERID]/resume")
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 = '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/resume";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}',
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/(timesheet|timelogs)/timers/[TIMERID]/resume"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}'
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/(timesheet|timelogs)/timers/[TIMERID]/resume");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}");
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/(timesheet|timelogs)/timers/[TIMERID]/resume");
request.Content = new StringContent(
@"{""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."",""type"":""task"",""log_id"":""8000000011005"",""entity_id"":""1752587000000094001""}",
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/(timesheet|timelogs)/timers/[TIMERID]/resume");
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, "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}");
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/(timesheet|timelogs)/timers/[TIMERID]/resume"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/resume", 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/(timesheet|timelogs)/timers/[TIMERID]/resume HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}
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/(timesheet|timelogs)/timers/[TIMERID]/resume");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}";
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/(timesheet|timelogs)/timers/[TIMERID]/resume';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}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/(timesheet|timelogs)/timers/[TIMERID]/resume")
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("""{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/resume"];
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 = [@"{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}" 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/(timesheet|timelogs)/timers/[TIMERID]/resume" 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|{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}|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 = @'
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/resume" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/resume"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\",\"type\":\"task\",\"log_id\":\"8000000011005\",\"entity_id\":\"1752587000000094001\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/resume")!
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 = """
{"notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.","type":"task","log_id":"8000000011005","entity_id":"1752587000000094001"}
""".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
Stop a running timer in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.timesheets.CREATE
Parameter
long
Enter the ID of the work item associated with the time log.
String
max length : 1000Enter the name of the time log.
String
requiredEnter the date of the time log. Format: YYYY-MM-DD
String
Enter the ID of the project associated with the time log.
String
requiredEnter the module type of the time log. Accepted values: task, issue, general
String
Enter the number of hours to log.
String
Enter the start time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
String
Enter the end time of the time log. Accepted values: 12-hour (with AM/PM), 12-hour (without AM/PM), or 24-hour formats. Example: 11:59 PM
String
requiredEnter the billing status of the time log. Accepted values: Billable, Non Billable
String
max length : 10000Enter any additional notes for the time log.
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/(timesheet|timelogs)/timers/[TIMERID]/stop' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/stop";
params = Map();
params.put("item_id", "-");
params.put("log_name", "Enter a name for the general time log");
params.put("date", "2024-12-11");
params.put("project_id", "23806000074760021");
params.put("type", "task");
params.put("hours", "01.00");
params.put("start_time", "01:00 AM");
params.put("end_time", "02:00 AM");
params.put("bill_status", "Billable");
params.put("notes", "The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.");
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/(timesheet|timelogs)/timers/[TIMERID]/stop');
const payload = JSON.stringify({"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."});
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/(timesheet|timelogs)/timers/[TIMERID]/stop")
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 = '{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/stop";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}',
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/(timesheet|timelogs)/timers/[TIMERID]/stop"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}'
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/(timesheet|timelogs)/timers/[TIMERID]/stop");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"project_id\":\"23806000074760021\",\"type\":\"task\",\"hours\":\"01.00\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"bill_status\":\"Billable\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"}");
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/(timesheet|timelogs)/timers/[TIMERID]/stop");
request.Content = new StringContent(
@"{""item_id"":""-"",""log_name"":""Enter a name for the general time log"",""date"":""2024-12-11"",""project_id"":""23806000074760021"",""type"":""task"",""hours"":""01.00"",""start_time"":""01:00 AM"",""end_time"":""02:00 AM"",""bill_status"":""Billable"",""notes"":""The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.""}",
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/(timesheet|timelogs)/timers/[TIMERID]/stop");
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, "{\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"project_id\":\"23806000074760021\",\"type\":\"task\",\"hours\":\"01.00\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"bill_status\":\"Billable\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"}");
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/(timesheet|timelogs)/timers/[TIMERID]/stop"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"project_id\":\"23806000074760021\",\"type\":\"task\",\"hours\":\"01.00\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"bill_status\":\"Billable\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"project_id\":\"23806000074760021\",\"type\":\"task\",\"hours\":\"01.00\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"bill_status\":\"Billable\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/stop", 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/(timesheet|timelogs)/timers/[TIMERID]/stop HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}
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/(timesheet|timelogs)/timers/[TIMERID]/stop");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"project_id\":\"23806000074760021\",\"type\":\"task\",\"hours\":\"01.00\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"bill_status\":\"Billable\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"}";
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/(timesheet|timelogs)/timers/[TIMERID]/stop';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}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/(timesheet|timelogs)/timers/[TIMERID]/stop")
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("""{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/stop"];
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 = [@"{\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"project_id\":\"23806000074760021\",\"type\":\"task\",\"hours\":\"01.00\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"bill_status\":\"Billable\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"}" 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/(timesheet|timelogs)/timers/[TIMERID]/stop" 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|{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}|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 = @'
{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/stop" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/stop"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"item_id\":\"-\",\"log_name\":\"Enter a name for the general time log\",\"date\":\"2024-12-11\",\"project_id\":\"23806000074760021\",\"type\":\"task\",\"hours\":\"01.00\",\"start_time\":\"01:00 AM\",\"end_time\":\"02:00 AM\",\"bill_status\":\"Billable\",\"notes\":\"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs.\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]/stop")!
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 = """
{"item_id":"-","log_name":"Enter a name for the general time log","date":"2024-12-11","project_id":"23806000074760021","type":"task","hours":"01.00","start_time":"01:00 AM","end_time":"02:00 AM","bill_status":"Billable","notes":"The Timesheet API allows users to manage their work hours by tracking time entries, submitting time_logs."}
""".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
Remove a timer entry from the Zoho Projects portal. Use this API to delete a timer that is no longer needed.
OAuth Scope:
ZohoProjects.timesheets.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/(timesheet|timelogs)/timers/[TIMERID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]";
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/(timesheet|timelogs)/timers/[TIMERID]');
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/(timesheet|timelogs)/timers/[TIMERID]")
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/(timesheet|timelogs)/timers/[TIMERID]";
$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/(timesheet|timelogs)/timers/[TIMERID]"
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/(timesheet|timelogs)/timers/[TIMERID]");
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/(timesheet|timelogs)/timers/[TIMERID]");
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/(timesheet|timelogs)/timers/[TIMERID]");
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/(timesheet|timelogs)/timers/[TIMERID]"
{: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/(timesheet|timelogs)/timers/[TIMERID]", 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/(timesheet|timelogs)/timers/[TIMERID] 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/(timesheet|timelogs)/timers/[TIMERID]");
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/(timesheet|timelogs)/timers/[TIMERID]';
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/(timesheet|timelogs)/timers/[TIMERID]")
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/(timesheet|timelogs)/timers/[TIMERID]"];
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/(timesheet|timelogs)/timers/[TIMERID]" 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/(timesheet|timelogs)/timers/[TIMERID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/(timesheet|timelogs)/timers/[TIMERID]"
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/(timesheet|timelogs)/timers/[TIMERID]")!
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 time log settings within Zoho Projects. Use this API to retrieve, update, or configure metadata and settings related to time logs.
Retrieve the metadata for time log settings in a specific portal. Use this API to access the available options and configurations for time log settings.
OAuth Scope:
ZohoProjects.timesheets.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/timelog/meta-data' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog/meta-data";
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/timelog/meta-data');
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/timelog/meta-data")
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/timelog/meta-data";
$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/timelog/meta-data"
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/timelog/meta-data");
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/timelog/meta-data");
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/timelog/meta-data");
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/timelog/meta-data"
{: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/timelog/meta-data", 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/timelog/meta-data 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/timelog/meta-data");
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/timelog/meta-data';
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/timelog/meta-data")
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/timelog/meta-data"];
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/timelog/meta-data" 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/timelog/meta-data" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog/meta-data"
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/timelog/meta-data")!
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 time log settings for a specific portal. Use this API to access the current configuration of time log settings in a portal.
OAuth Scope:
ZohoProjects.timesheets.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/timelog' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog";
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/timelog');
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/timelog")
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/timelog";
$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/timelog"
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/timelog");
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/timelog");
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/timelog");
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/timelog"
{: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/timelog", 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/timelog 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/timelog");
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/timelog';
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/timelog")
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/timelog"];
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/timelog" 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/timelog" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog"
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/timelog")!
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
Update the time log settings for a specific portal.
OAuth Scope:
ZohoProjects.timesheets.UPDATE
Parameter
String
Enter the user restriction for logging time. Accepted values: owners, everyone, teams
boolean
Specify whether to restrict time logging for closed tasks and issues. Accepted values: true or false
boolean
Specify whether to restrict running multiple timers simultaneously. Accepted values: true or false
boolean
Specify whether to restrict time logging based on task work hours. Accepted values: true or false
boolean
Specify whether to restrict time logging based on task or issue start and end dates. Accepted values: true or false
boolean
Specify whether to allow time logging for unassigned tasks and issues. Accepted values: true or false
boolean
Specify whether to restrict time logging based on Zoho People check-in and check-out time. Accepted values: true or false
String
Enter the overlap restriction for time logs. Accepted values: allow, warn, restrict
JSONObject
Enter the daily and weekly hour limit settings for time logging.
boolean
Specify whether to enable draft mode for timesheets. 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog";
params = Map();
params.put("allow_timelog_for", "everyone");
params.put("closed_entity_restriction", "true");
params.put("multi_timer_restriction", "false");
params.put("workhour_restriction", "true");
params.put("entity_date_restriction", "-");
params.put("allow_unassigned_entity_logs", "-");
params.put("zpeople_attendance_restriction", "-");
params.put("restrict_timelogs", {"weekend":"-","holiday":"-","zpeople_leave":"-"});
params.put("timelog_configuration", {"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"});
params.put("overlap_restriction", "allow");
params.put("period_settings", {"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]});
params.put("loghour_restriction", {"is_enabled":"-","max_per_day":"-","max_per_week":"-"});
params.put("reminder", {"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}});
params.put("approval", {"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}});
params.put("is_draft_enabled", "-");
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/timelog');
const payload = JSON.stringify({"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"});
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/timelog")
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 = '{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}',
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/timelog"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}'
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/timelog");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"allow_timelog_for\":\"everyone\",\"closed_entity_restriction\":\"true\",\"multi_timer_restriction\":\"false\",\"workhour_restriction\":\"true\",\"entity_date_restriction\":\"-\",\"allow_unassigned_entity_logs\":\"-\",\"zpeople_attendance_restriction\":\"-\",\"restrict_timelogs\":{\"weekend\":\"-\",\"holiday\":\"-\",\"zpeople_leave\":\"-\"},\"timelog_configuration\":{\"log_type\":\"-\",\"is_tasklog_enabled\":\"-\",\"is_issuelog_enabled\":\"-\",\"is_generallog_enabled\":\"-\"},\"overlap_restriction\":\"allow\",\"period_settings\":{\"past_log\":\"-\",\"future_log\":\"-\",\"is_editlog_restricted\":\"-\",\"period_customized_data\":{\"past_value\":\"-\",\"past_unit\":\"-\",\"future_value\":\"-\",\"future_unit\":\"-\"},\"past_log_excluded_users\":[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}]}]},\"loghour_restriction\":{\"is_enabled\":\"-\",\"max_per_day\":\"-\",\"max_per_week\":\"-\"},\"reminder\":{\"is_enabled\":\"-\",\"threshold\":\"-\",\"daily_reminder\":{\"minutes\":\"-\",\"condition\":\"-\",\"notify_running_timers\":\"-\"},\"weekly_reminder\":{\"minutes\":\"-\",\"condition\":\"-\"},\"exclude_reminder_for\":{\"users\":{\"add\":\"-\",\"remove\":\"-\"},\"profiles\":{\"add\":\"-\",\"remove\":\"-\"}}},\"approval\":{\"is_enabled\":\"-\",\"type\":\"task\",\"is_auto_approval\":\"-\",\"email_notification\":{\"is_enabled\":\"-\",\"frequency\":\"-\",\"time\":\"22:00\"}},\"is_draft_enabled\":\"-\"}");
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/timelog");
request.Content = new StringContent(
@"{""allow_timelog_for"":""everyone"",""closed_entity_restriction"":""true"",""multi_timer_restriction"":""false"",""workhour_restriction"":""true"",""entity_date_restriction"":""-"",""allow_unassigned_entity_logs"":""-"",""zpeople_attendance_restriction"":""-"",""restrict_timelogs"":{""weekend"":""-"",""holiday"":""-"",""zpeople_leave"":""-""},""timelog_configuration"":{""log_type"":""-"",""is_tasklog_enabled"":""-"",""is_issuelog_enabled"":""-"",""is_generallog_enabled"":""-""},""overlap_restriction"":""allow"",""period_settings"":{""past_log"":""-"",""future_log"":""-"",""is_editlog_restricted"":""-"",""period_customized_data"":{""past_value"":""-"",""past_unit"":""-"",""future_value"":""-"",""future_unit"":""-""},""past_log_excluded_users"":[{""add"":[{""zpuid"":""4000000002055""}],""remove"":[{""zpuid"":""4000000002055""}]}]},""loghour_restriction"":{""is_enabled"":""-"",""max_per_day"":""-"",""max_per_week"":""-""},""reminder"":{""is_enabled"":""-"",""threshold"":""-"",""daily_reminder"":{""minutes"":""-"",""condition"":""-"",""notify_running_timers"":""-""},""weekly_reminder"":{""minutes"":""-"",""condition"":""-""},""exclude_reminder_for"":{""users"":{""add"":""-"",""remove"":""-""},""profiles"":{""add"":""-"",""remove"":""-""}}},""approval"":{""is_enabled"":""-"",""type"":""task"",""is_auto_approval"":""-"",""email_notification"":{""is_enabled"":""-"",""frequency"":""-"",""time"":""22:00""}},""is_draft_enabled"":""-""}",
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/timelog");
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, "{\"allow_timelog_for\":\"everyone\",\"closed_entity_restriction\":\"true\",\"multi_timer_restriction\":\"false\",\"workhour_restriction\":\"true\",\"entity_date_restriction\":\"-\",\"allow_unassigned_entity_logs\":\"-\",\"zpeople_attendance_restriction\":\"-\",\"restrict_timelogs\":{\"weekend\":\"-\",\"holiday\":\"-\",\"zpeople_leave\":\"-\"},\"timelog_configuration\":{\"log_type\":\"-\",\"is_tasklog_enabled\":\"-\",\"is_issuelog_enabled\":\"-\",\"is_generallog_enabled\":\"-\"},\"overlap_restriction\":\"allow\",\"period_settings\":{\"past_log\":\"-\",\"future_log\":\"-\",\"is_editlog_restricted\":\"-\",\"period_customized_data\":{\"past_value\":\"-\",\"past_unit\":\"-\",\"future_value\":\"-\",\"future_unit\":\"-\"},\"past_log_excluded_users\":[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}]}]},\"loghour_restriction\":{\"is_enabled\":\"-\",\"max_per_day\":\"-\",\"max_per_week\":\"-\"},\"reminder\":{\"is_enabled\":\"-\",\"threshold\":\"-\",\"daily_reminder\":{\"minutes\":\"-\",\"condition\":\"-\",\"notify_running_timers\":\"-\"},\"weekly_reminder\":{\"minutes\":\"-\",\"condition\":\"-\"},\"exclude_reminder_for\":{\"users\":{\"add\":\"-\",\"remove\":\"-\"},\"profiles\":{\"add\":\"-\",\"remove\":\"-\"}}},\"approval\":{\"is_enabled\":\"-\",\"type\":\"task\",\"is_auto_approval\":\"-\",\"email_notification\":{\"is_enabled\":\"-\",\"frequency\":\"-\",\"time\":\"22:00\"}},\"is_draft_enabled\":\"-\"}");
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/timelog"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"allow_timelog_for\":\"everyone\",\"closed_entity_restriction\":\"true\",\"multi_timer_restriction\":\"false\",\"workhour_restriction\":\"true\",\"entity_date_restriction\":\"-\",\"allow_unassigned_entity_logs\":\"-\",\"zpeople_attendance_restriction\":\"-\",\"restrict_timelogs\":{\"weekend\":\"-\",\"holiday\":\"-\",\"zpeople_leave\":\"-\"},\"timelog_configuration\":{\"log_type\":\"-\",\"is_tasklog_enabled\":\"-\",\"is_issuelog_enabled\":\"-\",\"is_generallog_enabled\":\"-\"},\"overlap_restriction\":\"allow\",\"period_settings\":{\"past_log\":\"-\",\"future_log\":\"-\",\"is_editlog_restricted\":\"-\",\"period_customized_data\":{\"past_value\":\"-\",\"past_unit\":\"-\",\"future_value\":\"-\",\"future_unit\":\"-\"},\"past_log_excluded_users\":[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}]}]},\"loghour_restriction\":{\"is_enabled\":\"-\",\"max_per_day\":\"-\",\"max_per_week\":\"-\"},\"reminder\":{\"is_enabled\":\"-\",\"threshold\":\"-\",\"daily_reminder\":{\"minutes\":\"-\",\"condition\":\"-\",\"notify_running_timers\":\"-\"},\"weekly_reminder\":{\"minutes\":\"-\",\"condition\":\"-\"},\"exclude_reminder_for\":{\"users\":{\"add\":\"-\",\"remove\":\"-\"},\"profiles\":{\"add\":\"-\",\"remove\":\"-\"}}},\"approval\":{\"is_enabled\":\"-\",\"type\":\"task\",\"is_auto_approval\":\"-\",\"email_notification\":{\"is_enabled\":\"-\",\"frequency\":\"-\",\"time\":\"22:00\"}},\"is_draft_enabled\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"allow_timelog_for\":\"everyone\",\"closed_entity_restriction\":\"true\",\"multi_timer_restriction\":\"false\",\"workhour_restriction\":\"true\",\"entity_date_restriction\":\"-\",\"allow_unassigned_entity_logs\":\"-\",\"zpeople_attendance_restriction\":\"-\",\"restrict_timelogs\":{\"weekend\":\"-\",\"holiday\":\"-\",\"zpeople_leave\":\"-\"},\"timelog_configuration\":{\"log_type\":\"-\",\"is_tasklog_enabled\":\"-\",\"is_issuelog_enabled\":\"-\",\"is_generallog_enabled\":\"-\"},\"overlap_restriction\":\"allow\",\"period_settings\":{\"past_log\":\"-\",\"future_log\":\"-\",\"is_editlog_restricted\":\"-\",\"period_customized_data\":{\"past_value\":\"-\",\"past_unit\":\"-\",\"future_value\":\"-\",\"future_unit\":\"-\"},\"past_log_excluded_users\":[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}]}]},\"loghour_restriction\":{\"is_enabled\":\"-\",\"max_per_day\":\"-\",\"max_per_week\":\"-\"},\"reminder\":{\"is_enabled\":\"-\",\"threshold\":\"-\",\"daily_reminder\":{\"minutes\":\"-\",\"condition\":\"-\",\"notify_running_timers\":\"-\"},\"weekly_reminder\":{\"minutes\":\"-\",\"condition\":\"-\"},\"exclude_reminder_for\":{\"users\":{\"add\":\"-\",\"remove\":\"-\"},\"profiles\":{\"add\":\"-\",\"remove\":\"-\"}}},\"approval\":{\"is_enabled\":\"-\",\"type\":\"task\",\"is_auto_approval\":\"-\",\"email_notification\":{\"is_enabled\":\"-\",\"frequency\":\"-\",\"time\":\"22:00\"}},\"is_draft_enabled\":\"-\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog", 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/timelog HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}
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/timelog");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"allow_timelog_for\":\"everyone\",\"closed_entity_restriction\":\"true\",\"multi_timer_restriction\":\"false\",\"workhour_restriction\":\"true\",\"entity_date_restriction\":\"-\",\"allow_unassigned_entity_logs\":\"-\",\"zpeople_attendance_restriction\":\"-\",\"restrict_timelogs\":{\"weekend\":\"-\",\"holiday\":\"-\",\"zpeople_leave\":\"-\"},\"timelog_configuration\":{\"log_type\":\"-\",\"is_tasklog_enabled\":\"-\",\"is_issuelog_enabled\":\"-\",\"is_generallog_enabled\":\"-\"},\"overlap_restriction\":\"allow\",\"period_settings\":{\"past_log\":\"-\",\"future_log\":\"-\",\"is_editlog_restricted\":\"-\",\"period_customized_data\":{\"past_value\":\"-\",\"past_unit\":\"-\",\"future_value\":\"-\",\"future_unit\":\"-\"},\"past_log_excluded_users\":[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}]}]},\"loghour_restriction\":{\"is_enabled\":\"-\",\"max_per_day\":\"-\",\"max_per_week\":\"-\"},\"reminder\":{\"is_enabled\":\"-\",\"threshold\":\"-\",\"daily_reminder\":{\"minutes\":\"-\",\"condition\":\"-\",\"notify_running_timers\":\"-\"},\"weekly_reminder\":{\"minutes\":\"-\",\"condition\":\"-\"},\"exclude_reminder_for\":{\"users\":{\"add\":\"-\",\"remove\":\"-\"},\"profiles\":{\"add\":\"-\",\"remove\":\"-\"}}},\"approval\":{\"is_enabled\":\"-\",\"type\":\"task\",\"is_auto_approval\":\"-\",\"email_notification\":{\"is_enabled\":\"-\",\"frequency\":\"-\",\"time\":\"22:00\"}},\"is_draft_enabled\":\"-\"}";
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/timelog';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}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/timelog")
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("""{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog"];
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 = [@"{\"allow_timelog_for\":\"everyone\",\"closed_entity_restriction\":\"true\",\"multi_timer_restriction\":\"false\",\"workhour_restriction\":\"true\",\"entity_date_restriction\":\"-\",\"allow_unassigned_entity_logs\":\"-\",\"zpeople_attendance_restriction\":\"-\",\"restrict_timelogs\":{\"weekend\":\"-\",\"holiday\":\"-\",\"zpeople_leave\":\"-\"},\"timelog_configuration\":{\"log_type\":\"-\",\"is_tasklog_enabled\":\"-\",\"is_issuelog_enabled\":\"-\",\"is_generallog_enabled\":\"-\"},\"overlap_restriction\":\"allow\",\"period_settings\":{\"past_log\":\"-\",\"future_log\":\"-\",\"is_editlog_restricted\":\"-\",\"period_customized_data\":{\"past_value\":\"-\",\"past_unit\":\"-\",\"future_value\":\"-\",\"future_unit\":\"-\"},\"past_log_excluded_users\":[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}]}]},\"loghour_restriction\":{\"is_enabled\":\"-\",\"max_per_day\":\"-\",\"max_per_week\":\"-\"},\"reminder\":{\"is_enabled\":\"-\",\"threshold\":\"-\",\"daily_reminder\":{\"minutes\":\"-\",\"condition\":\"-\",\"notify_running_timers\":\"-\"},\"weekly_reminder\":{\"minutes\":\"-\",\"condition\":\"-\"},\"exclude_reminder_for\":{\"users\":{\"add\":\"-\",\"remove\":\"-\"},\"profiles\":{\"add\":\"-\",\"remove\":\"-\"}}},\"approval\":{\"is_enabled\":\"-\",\"type\":\"task\",\"is_auto_approval\":\"-\",\"email_notification\":{\"is_enabled\":\"-\",\"frequency\":\"-\",\"time\":\"22:00\"}},\"is_draft_enabled\":\"-\"}" 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/timelog" 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|{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}|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 = @'
{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"allow_timelog_for\":\"everyone\",\"closed_entity_restriction\":\"true\",\"multi_timer_restriction\":\"false\",\"workhour_restriction\":\"true\",\"entity_date_restriction\":\"-\",\"allow_unassigned_entity_logs\":\"-\",\"zpeople_attendance_restriction\":\"-\",\"restrict_timelogs\":{\"weekend\":\"-\",\"holiday\":\"-\",\"zpeople_leave\":\"-\"},\"timelog_configuration\":{\"log_type\":\"-\",\"is_tasklog_enabled\":\"-\",\"is_issuelog_enabled\":\"-\",\"is_generallog_enabled\":\"-\"},\"overlap_restriction\":\"allow\",\"period_settings\":{\"past_log\":\"-\",\"future_log\":\"-\",\"is_editlog_restricted\":\"-\",\"period_customized_data\":{\"past_value\":\"-\",\"past_unit\":\"-\",\"future_value\":\"-\",\"future_unit\":\"-\"},\"past_log_excluded_users\":[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}]}]},\"loghour_restriction\":{\"is_enabled\":\"-\",\"max_per_day\":\"-\",\"max_per_week\":\"-\"},\"reminder\":{\"is_enabled\":\"-\",\"threshold\":\"-\",\"daily_reminder\":{\"minutes\":\"-\",\"condition\":\"-\",\"notify_running_timers\":\"-\"},\"weekly_reminder\":{\"minutes\":\"-\",\"condition\":\"-\"},\"exclude_reminder_for\":{\"users\":{\"add\":\"-\",\"remove\":\"-\"},\"profiles\":{\"add\":\"-\",\"remove\":\"-\"}}},\"approval\":{\"is_enabled\":\"-\",\"type\":\"task\",\"is_auto_approval\":\"-\",\"email_notification\":{\"is_enabled\":\"-\",\"frequency\":\"-\",\"time\":\"22:00\"}},\"is_draft_enabled\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/timelog")!
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 = """
{"allow_timelog_for":"everyone","closed_entity_restriction":"true","multi_timer_restriction":"false","workhour_restriction":"true","entity_date_restriction":"-","allow_unassigned_entity_logs":"-","zpeople_attendance_restriction":"-","restrict_timelogs":{"weekend":"-","holiday":"-","zpeople_leave":"-"},"timelog_configuration":{"log_type":"-","is_tasklog_enabled":"-","is_issuelog_enabled":"-","is_generallog_enabled":"-"},"overlap_restriction":"allow","period_settings":{"past_log":"-","future_log":"-","is_editlog_restricted":"-","period_customized_data":{"past_value":"-","past_unit":"-","future_value":"-","future_unit":"-"},"past_log_excluded_users":[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}]}]},"loghour_restriction":{"is_enabled":"-","max_per_day":"-","max_per_week":"-"},"reminder":{"is_enabled":"-","threshold":"-","daily_reminder":{"minutes":"-","condition":"-","notify_running_timers":"-"},"weekly_reminder":{"minutes":"-","condition":"-"},"exclude_reminder_for":{"users":{"add":"-","remove":"-"},"profiles":{"add":"-","remove":"-"}}},"approval":{"is_enabled":"-","type":"task","is_auto_approval":"-","email_notification":{"is_enabled":"-","frequency":"-","time":"22:00"}},"is_draft_enabled":"-"}
""".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 entities within Custom Modules in Zoho Projects. Use this API to manage comments, attachments, followers, status timeline of records.
Retrieve the list of records from a custom module. Use this API to view records with support for filtering, sorting, and pagination.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
int
Enter the index of the record.
int
Enter the range of the record.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Specify the sort criteria. Accepted values: ASC(field_name) or DESC(field_name).
long
Enter the custom view ID.
long
Enter the project 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/module/[MODULEID]/entities?index=1&range=100&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%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%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&view_id=4000000001232&project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities";
params = Map();
params.put("index", "1");
params.put("range", "100");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"});
params.put("sort_by", "ASC(last_modified_time)");
params.put("view_id", "4000000001232");
params.put("project_id", "23806000097545166");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities');
url.searchParams.append('index', '1');
url.searchParams.append('range', '100');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('view_id', '4000000001232');
url.searchParams.append('project_id', '23806000097545166');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities")
params = {
"index" => "1",
"range" => "100",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}",
"sort_by" => "ASC(last_modified_time)",
"view_id" => "4000000001232",
"project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'index' => '1',
'range' => '100',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}',
'sort_by' => 'ASC(last_modified_time)',
'view_id' => '4000000001232',
'project_id' => '23806000097545166',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/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/module/[MODULEID]/entities"
params = {
"index": "1",
"range": "100",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}",
"sort_by": "ASC(last_modified_time)",
"view_id": "4000000001232",
"project_id": "23806000097545166"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_index = curl_easy_escape(curl, "1", 0);
char *enc_range = curl_easy_escape(curl, "100", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char *enc_view_id = curl_easy_escape(curl, "4000000001232", 0);
char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities?index=%s&range=%s&page=%s&per_page=%s&\"filter\"=%s&sort_by=%s&view_id=%s&project_id=%s", enc_index, enc_range, enc_page, enc_per_page, enc_"filter", enc_sort_by, enc_view_id, enc_project_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["index"] = "1";
query["range"] = "100";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["view_id"] = "4000000001232";
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_index = curl_easy_escape(curl, "1", 0);
char* enc_range = curl_easy_escape(curl, "100", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 0);
char* enc_view_id = curl_easy_escape(curl, "4000000001232", 0);
char* enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities";
url += "?index=" + std::string(enc_index);
url += "&range=" + std::string(enc_range);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
url += "&sort_by=" + std::string(enc_sort_by);
url += "&view_id=" + std::string(enc_view_id);
url += "&project_id=" + std::string(enc_project_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_sort_by);
curl_free(enc_view_id);
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-index (java.net.URLEncoder/encode "1" "UTF-8")
enc-range (java.net.URLEncoder/encode "100" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "4000000001232" "UTF-8")
enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities" "?index=" enc-index "&range=" enc-range "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&sort_by=" enc-sort_by "&view_id=" enc-view_id "&project_id=" enc-project_id)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities", nil)
q := req.URL.Query()
q.Add("index", "1")
q.Add("range", "100")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}")
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("view_id", "4000000001232")
q.Add("project_id", "23806000097545166")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities?index=1&range=100&page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%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%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&view_id=4000000001232&project_id=23806000097545166 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]/entities");
uriBuilder.addParameter("index", "1");
uriBuilder.addParameter("range", "100");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("view_id", "4000000001232");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities';
const params = new URLSearchParams({
'index': '1',
'range': '100',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}',
'sort_by': 'ASC(last_modified_time)',
'view_id': '4000000001232',
'project_id': '23806000097545166'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
index = "1"
range = "100"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}
sort_by = "ASC(last_modified_time)"
view_id = "4000000001232"
project_id = "23806000097545166"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/module/[MODULEID]/entities".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("index", "1")
urlBuilder.addQueryParameter("range", "100")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("view_id", "4000000001232")
urlBuilder.addQueryParameter("project_id", "23806000097545166")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedIndex = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"100" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"4000000001232" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities?index=%@&range=%@&page=%@&per_page=%@&"filter"=%@&sort_by=%@&view_id=%@&project_id=%@", encodedIndex, encodedRange, encodedPage, encodedPer_page, encoded"filter", encodedSort_by, encodedView_id, encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_index = Uri.pct_encode "1" in
let enc_range = Uri.pct_encode "100" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}" in
let enc_sort_by = Uri.pct_encode "ASC(last_modified_time)" in
let enc_view_id = Uri.pct_encode "4000000001232" in
let enc_project_id = Uri.pct_encode "23806000097545166" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities" ^ "?index=" ^ enc_index ^ "&range=" ^ enc_range ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&sort_by=" ^ enc_sort_by ^ "&view_id=" ^ enc_view_id ^ "&project_id=" ^ enc_project_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
index = "1"
range = "100"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"name`",`"field_name`":`"Risk Name`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"field_name`":`"Risk Name`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`",`"is_this_today`":false}]}],`"pattern`":`"1 AND 2`"}"
sort_by = "ASC(last_modified_time)"
view_id = "4000000001232"
project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/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/module/[MODULEID]/entities"
params <- list(
index = "1",
range = "100",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}",
sort_by = "ASC(last_modified_time)",
view_id = "4000000001232",
project_id = "23806000097545166"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities")!
components.queryItems = [
URLQueryItem(name: "index", value: "1"),
URLQueryItem(name: "range", value: "100"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "view_id", value: "4000000001232"),
URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve details of a specific record. Use this API to fetch complete information of a record using its ID.
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/module/[MODULEID]/entities/[ENTITIEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]";
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]/entities/[ENTITIEID]');
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]/entities/[ENTITIEID]")
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]/entities/[ENTITIEID]";
$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]/entities/[ENTITIEID]"
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]/entities/[ENTITIEID]");
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]/entities/[ENTITIEID]");
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]/entities/[ENTITIEID]");
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]/entities/[ENTITIEID]"
{: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]/entities/[ENTITIEID]", 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]/entities/[ENTITIEID] 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]/entities/[ENTITIEID]");
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]/entities/[ENTITIEID]';
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]/entities/[ENTITIEID]")
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]/entities/[ENTITIEID]"];
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]/entities/[ENTITIEID]" 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]/entities/[ENTITIEID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]"
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]/entities/[ENTITIEID]")!
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 record in a custom module. Use this API to add a record with basic details such as name, status, layout, and project.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredmax length : 200
Enter the record name.
String
max length : 80000Enter the record description.
boolean
Specify whether the record is closed. Accepted values :true or false
boolean
Specify whether the record is external. 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/module/[MODULEID]/entities' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities";
params = Map();
params.put("name", "Sample_001");
params.put("description", "Sample content of entity");
params.put("status", {"id":"4000000062001"});
params.put("layout", {"id":"4000000062001"});
params.put("project", {"id":"4000000062001"});
params.put("is_closed", "false");
params.put("is_external", "false");
response = invokeUrl
[
url: url
type: POST
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities');
const payload = JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}'
response = requests.post(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities");
request.Content = new StringContent(
@"{""name"":""Sample_001"",""description"":""Sample content of entity"",""status"":{""id"":""4000000062001""},""layout"":{""id"":""4000000062001""},""project"":{""id"":""4000000062001""},""is_closed"":""false"",""is_external"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities", payload)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
req.Header.Add("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
|> fun h -> Cohttp.Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string {json|{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}|json} in
Lwt_main.run (
Client.post ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Modify details of an existing record. Use this API to modify fields such as name, status, layout, or other record properties.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
max length : 200Enter the record name.
String
max length : 80000Enter the record description.
boolean
Specify whether the record is closed. Accepted values :true or false
boolean
Specify whether the record is external. 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]";
params = Map();
params.put("name", "Sample_001");
params.put("description", "Sample content of entity");
params.put("status", {"id":"4000000062001"});
params.put("layout", {"id":"4000000062001"});
params.put("project", {"id":"4000000062001"});
params.put("is_closed", "false");
params.put("is_external", "false");
response = invokeUrl
[
url: url
type: PATCH
parameters: params.toString()
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]');
const payload = JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}'
response = requests.patch(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]");
request.Content = new StringContent(
@"{""name"":""Sample_001"",""description"":""Sample content of entity"",""status"":{""id"":""4000000062001""},""layout"":{""id"":""4000000062001""},""project"":{""id"":""4000000062001""},""is_closed"":""false"",""is_external"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]", 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/module/[MODULEID]/entities/[ENTITIEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}import java.net.HttpURLConnection
import java.net.URL
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val url = URL("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "PATCH"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PATCH"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]" in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
|> fun h -> Cohttp.Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string {json|{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}|json} in
Lwt_main.run (
Client.patch ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Sample_001\",\"description\":\"Sample content of entity\",\"status\":{\"id\":\"4000000062001\"},\"layout\":{\"id\":\"4000000062001\"},\"project\":{\"id\":\"4000000062001\"},\"is_closed\":\"false\",\"is_external\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"name":"Sample_001","description":"Sample content of entity","status":{"id":"4000000062001"},"layout":{"id":"4000000062001"},"project":{"id":"4000000062001"},"is_closed":"false","is_external":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Move a record to recycle bin within Zoho Projects portal.
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/module/[MODULEID]/entities/[ENTITIEID]/trash' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/trash" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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 the trashed record from recycle bin.
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/module/[MODULEID]/entities/[ENTITIEID]/restore' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/restore" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]/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/module/[MODULEID]/entities/[ENTITIEID]/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 record permanently from the recycle bin. Use this API to remove a record completely.
OAuth Scope:
ZohoProjects.portals.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/module/[MODULEID]/entities/[ENTITIEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]";
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/module/[MODULEID]/entities/[ENTITIEID]');
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/module/[MODULEID]/entities/[ENTITIEID]")
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/module/[MODULEID]/entities/[ENTITIEID]";
$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/module/[MODULEID]/entities/[ENTITIEID]"
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/module/[MODULEID]/entities/[ENTITIEID]");
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/module/[MODULEID]/entities/[ENTITIEID]");
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]/entities/[ENTITIEID]");
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/module/[MODULEID]/entities/[ENTITIEID]"
{: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/module/[MODULEID]/entities/[ENTITIEID]", 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/module/[MODULEID]/entities/[ENTITIEID] 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]/entities/[ENTITIEID]");
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/module/[MODULEID]/entities/[ENTITIEID]';
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/module/[MODULEID]/entities/[ENTITIEID]")
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/module/[MODULEID]/entities/[ENTITIEID]"];
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/module/[MODULEID]/entities/[ENTITIEID]" 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/module/[MODULEID]/entities/[ENTITIEID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/[ENTITIEID]"
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/module/[MODULEID]/entities/[ENTITIEID]")!
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
Retrieve the status change history of a record.
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/module/[MODULEID]/entity/[ENTITYID]/status-timeline' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/status-timeline" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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
Retrieve the total number of records in a module. Use this API with filters to get count based on criteria.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
long
Enter the custom view ID.
long
Enter the project 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/module/[MODULEID]/entities/count?%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%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%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&view_id=4000000001232&project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count";
params = Map();
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"});
params.put("view_id", "4000000001232");
params.put("project_id", "23806000097545166");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}');
url.searchParams.append('view_id', '4000000001232');
url.searchParams.append('project_id', '23806000097545166');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count")
params = {
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}",
"view_id" => "4000000001232",
"project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}',
'view_id' => '4000000001232',
'project_id' => '23806000097545166',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count" . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count"
params = {
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}",
"view_id": "4000000001232",
"project_id": "23806000097545166"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_view_id = curl_easy_escape(curl, "4000000001232", 0);
char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count?\"filter\"=%s&view_id=%s&project_id=%s", enc_"filter", enc_view_id, enc_project_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_"filter");
curl_free(enc_view_id);
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}";
query["view_id"] = "4000000001232";
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_view_id = curl_easy_escape(curl, "4000000001232", 0);
char* enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count";
url += "?"filter"=" + std::string(enc_"filter");
url += "&view_id=" + std::string(enc_view_id);
url += "&project_id=" + std::string(enc_project_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_"filter");
curl_free(enc_view_id);
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"filter" (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-view_id (java.net.URLEncoder/encode "4000000001232" "UTF-8")
enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count" "?"filter"=" enc-"filter" "&view_id=" enc-view_id "&project_id=" enc-project_id)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count", nil)
q := req.URL.Query()
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}")
q.Add("view_id", "4000000001232")
q.Add("project_id", "23806000097545166")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count?%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22api_name%22%3A%22name%22%2C%22field_name%22%3A%22Risk+Name%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%22Risk+Name%22%2C%22offset%22%3A%221%22%2C%22unit%22%3A%22days%22%2C%22prior%22%3A%22before%22%2C%22is_this_today%22%3Afalse%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&view_id=4000000001232&project_id=23806000097545166 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]/entities/count");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("view_id", "4000000001232");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count';
const params = new URLSearchParams({
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}',
'view_id': '4000000001232',
'project_id': '23806000097545166'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"name","field_name":"Risk Name","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","field_name":"Risk Name","offset":"1","unit":"days","prior":"before","is_this_today":false}]}],"pattern":"1 AND 2"}
view_id = "4000000001232"
project_id = "23806000097545166"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/module/[MODULEID]/entities/count".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("view_id", "4000000001232")
urlBuilder.addQueryParameter("project_id", "23806000097545166")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_id = [@"4000000001232" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count?"filter"=%@&view_id=%@&project_id=%@", encoded"filter", encodedView_id, encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}" in
let enc_view_id = Uri.pct_encode "4000000001232" in
let enc_project_id = Uri.pct_encode "23806000097545166" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count" ^ "?"filter"=" ^ enc_"filter" ^ "&view_id=" ^ enc_view_id ^ "&project_id=" ^ enc_project_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"name`",`"field_name`":`"Risk Name`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"field_name`":`"Risk Name`",`"offset`":`"1`",`"unit`":`"days`",`"prior`":`"before`",`"is_this_today`":false}]}],`"pattern`":`"1 AND 2`"}"
view_id = "4000000001232"
project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count"
params <- list(
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}",
view_id = "4000000001232",
project_id = "23806000097545166"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entities/count")!
components.queryItems = [
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"name\",\"field_name\":\"Risk Name\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"field_name\":\"Risk Name\",\"offset\":\"1\",\"unit\":\"days\",\"prior\":\"before\",\"is_this_today\":false}]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "view_id", value: "4000000001232"),
URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This module covers operations related to comments within records. Use this API to retrieve, add, update, or delete comments associated with entities in a custom module.
Retrieve all comments for a record. Use this API to view comments with pagination and sorting support.
OAuth Scope:
ZohoProjects.custom_fields.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: ASC(field_name) or DESC(field_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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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
Retrieve the details of a specific comment from a record. Use this API to fetch a single comment using its ID.
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]/entity/[ENTITYID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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 record. Use this API to post a new comment, with optional attachments.
OAuth Scope:
ZohoProjects.custom_fields.CREATE
Parameter
String
requiredmax length : 65535
Enter the comment content.
JSONArray
max length : 10000Enter the attachment details to associate or remove.
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/module/[MODULEID]/entity/[ENTITYID]/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments";
params = Map();
params.put("content", "Sample content");
params.put("attachments", [{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]);
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/module/[MODULEID]/entity/[ENTITYID]/comments');
const payload = JSON.stringify({"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]});
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/module/[MODULEID]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}',
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/module/[MODULEID]/entity/[ENTITYID]/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}'
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/module/[MODULEID]/entity/[ENTITYID]/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}");
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/module/[MODULEID]/entity/[ENTITYID]/comments");
request.Content = new StringContent(
@"{""content"":""Sample content"",""attachments"":[{""add"":[{""attachment_id"":""40000000987652""}],""remove"":[{""attachment_id"":""40000000987652""}],""attachment_id"":""40000000987652""}]}",
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/module/[MODULEID]/entity/[ENTITYID]/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\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}");
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/module/[MODULEID]/entity/[ENTITYID]/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}
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]/entity/[ENTITYID]/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}";
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/module/[MODULEID]/entity/[ENTITYID]/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}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]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}" 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/module/[MODULEID]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}|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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}
""".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 comment in a record. Use this API to modify comment content or associated attachments.
OAuth Scope:
ZohoProjects.custom_fields.UPDATE
Parameter
String
requiredmax length : 65535
Enter the comment.
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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046";
params = Map();
params.put("content", "Sample content");
params.put("attachments", [{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]);
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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046');
const payload = JSON.stringify({"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]});
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/module/[MODULEID]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}',
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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}'
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/module/[MODULEID]/entity/[ENTITYID]/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\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}");
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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046");
request.Content = new StringContent(
@"{""content"":""Sample content"",""attachments"":[{""add"":[{""attachment_id"":""40000000987652""}],""remove"":[{""attachment_id"":""40000000987652""}],""attachment_id"":""40000000987652""}]}",
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/module/[MODULEID]/entity/[ENTITYID]/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\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}");
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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}
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]/entity/[ENTITYID]/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}";
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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Sample content","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}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]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}" 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/module/[MODULEID]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}|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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Sample content\",\"attachments\":[{\"add\":[{\"attachment_id\":\"40000000987652\"}],\"remove\":[{\"attachment_id\":\"40000000987652\"}],\"attachment_id\":\"40000000987652\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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","attachments":[{"add":[{"attachment_id":"40000000987652"}],"remove":[{"attachment_id":"40000000987652"}],"attachment_id":"40000000987652"}]}
""".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 record. Use this API to remove a comment permanently.
OAuth Scope:
ZohoProjects.custom_fields.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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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
Retrieve the total number of comments for a record.
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]/entity/[ENTITYID]/commentscount' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/commentscount";
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]/entity/[ENTITYID]/commentscount');
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]/entity/[ENTITYID]/commentscount")
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]/entity/[ENTITYID]/commentscount";
$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]/entity/[ENTITYID]/commentscount"
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]/entity/[ENTITYID]/commentscount");
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]/entity/[ENTITYID]/commentscount");
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]/entity/[ENTITYID]/commentscount");
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]/entity/[ENTITYID]/commentscount"
{: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]/entity/[ENTITYID]/commentscount", 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]/entity/[ENTITYID]/commentscount 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]/entity/[ENTITYID]/commentscount");
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]/entity/[ENTITYID]/commentscount';
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]/entity/[ENTITYID]/commentscount")
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]/entity/[ENTITYID]/commentscount"];
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]/entity/[ENTITYID]/commentscount" 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]/entity/[ENTITYID]/commentscount" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/commentscount"
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]/entity/[ENTITYID]/commentscount")!
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 attachments within a record. Use this API to add or delete attachments from an entity.
Retrieve all attachments associated with a record.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
long
Enter the project 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/module/[MODULEID]/entity/[ENTITYID]/attachments?project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments";
params = Map();
params.put("project_id", "23806000097545166");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments');
url.searchParams.append('project_id', '23806000097545166');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments")
params = {
"project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'project_id' => '23806000097545166',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments" . "?" . 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/module/[MODULEID]/entity/[ENTITYID]/attachments"
params = {
"project_id": "23806000097545166"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments?project_id=%s", enc_project_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments") { 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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments";
url += "?project_id=" + std::string(enc_project_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments" "?project_id=" enc-project_id)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments", nil)
q := req.URL.Query()
q.Add("project_id", "23806000097545166")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments?project_id=23806000097545166 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]/entity/[ENTITYID]/attachments");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments';
const params = new URLSearchParams({
'project_id': '23806000097545166'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
project_id = "23806000097545166"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/module/[MODULEID]/entity/[ENTITYID]/attachments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("project_id", "23806000097545166")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments?project_id=%@", encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_project_id = Uri.pct_encode "23806000097545166" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments" ^ "?project_id=" ^ enc_project_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments"
params <- list(
project_id = "23806000097545166"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachments")!
components.queryItems = [
URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Retrieve the total number of attachments for a record.
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]/entity/[ENTITYID]/attachmentcount' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachmentcount";
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]/entity/[ENTITYID]/attachmentcount');
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]/entity/[ENTITYID]/attachmentcount")
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]/entity/[ENTITYID]/attachmentcount";
$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]/entity/[ENTITYID]/attachmentcount"
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]/entity/[ENTITYID]/attachmentcount");
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]/entity/[ENTITYID]/attachmentcount");
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]/entity/[ENTITYID]/attachmentcount");
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]/entity/[ENTITYID]/attachmentcount"
{: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]/entity/[ENTITYID]/attachmentcount", 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]/entity/[ENTITYID]/attachmentcount 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]/entity/[ENTITYID]/attachmentcount");
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]/entity/[ENTITYID]/attachmentcount';
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]/entity/[ENTITYID]/attachmentcount")
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]/entity/[ENTITYID]/attachmentcount"];
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]/entity/[ENTITYID]/attachmentcount" 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]/entity/[ENTITYID]/attachmentcount" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/attachmentcount"
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]/entity/[ENTITYID]/attachmentcount")!
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 followers within a record. Use this API to retrieve, add, or remove followers from a record.
Retrieve the list of followers from the record.
OAuth Scope:
ZohoProjects.custom_fields.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/module/[MODULEID]/entity/[ENTITYID]/followers?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/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 a follower to the record.
OAuth Scope:
ZohoProjects.custom_fields.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/module/[MODULEID]/entity/[ENTITYID]/follow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/follow";
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/module/[MODULEID]/entity/[ENTITYID]/follow');
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/module/[MODULEID]/entity/[ENTITYID]/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"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/follow";
$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/module/[MODULEID]/entity/[ENTITYID]/follow"
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/module/[MODULEID]/entity/[ENTITYID]/follow");
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/module/[MODULEID]/entity/[ENTITYID]/follow");
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]/entity/[ENTITYID]/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);
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/module/[MODULEID]/entity/[ENTITYID]/follow"
{: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/module/[MODULEID]/entity/[ENTITYID]/follow", 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/module/[MODULEID]/entity/[ENTITYID]/follow 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]/entity/[ENTITYID]/follow");
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/module/[MODULEID]/entity/[ENTITYID]/follow';
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/module/[MODULEID]/entity/[ENTITYID]/follow")
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/module/[MODULEID]/entity/[ENTITYID]/follow"];
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/module/[MODULEID]/entity/[ENTITYID]/follow" 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/module/[MODULEID]/entity/[ENTITYID]/follow" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/follow"
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/module/[MODULEID]/entity/[ENTITYID]/follow")!
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
Add or remove multiple followers for a record. Use this API to manage followers in bulk..
OAuth Scope:
ZohoProjects.custom_fields.CREATE
Parameter
String
max length : 30Enter the ZPUID of the user to 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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers";
params = List();
params.add({"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"});
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/module/[MODULEID]/entity/[ENTITYID]/followers');
const payload = JSON.stringify([{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]);
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/module/[MODULEID]/entity/[ENTITYID]/followers")
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 = '[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]',
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/module/[MODULEID]/entity/[ENTITYID]/followers"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]'
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/module/[MODULEID]/entity/[ENTITYID]/followers");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\"}]");
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/module/[MODULEID]/entity/[ENTITYID]/followers");
request.Content = new StringContent(
@"[{""add"":[{""zpuid"":""4000000002055""}],""remove"":[{""zpuid"":""4000000002055""}],""zpuid"":""4000000002055""}]",
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/module/[MODULEID]/entity/[ENTITYID]/followers");
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, "[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\"}]");
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/module/[MODULEID]/entity/[ENTITYID]/followers"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\"}]"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\"}]")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers", 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/module/[MODULEID]/entity/[ENTITYID]/followers HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]
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]/entity/[ENTITYID]/followers");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\"}]";
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/module/[MODULEID]/entity/[ENTITYID]/followers';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify([{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}])
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]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]/entity/[ENTITYID]/followers")
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("""[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers"];
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 = [@"[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\"}]" 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/module/[MODULEID]/entity/[ENTITYID]/followers" 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|[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]|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 = @'
[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "[{\"add\":[{\"zpuid\":\"4000000002055\"}],\"remove\":[{\"zpuid\":\"4000000002055\"}],\"zpuid\":\"4000000002055\"}]"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/followers")!
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 = """
[{"add":[{"zpuid":"4000000002055"}],"remove":[{"zpuid":"4000000002055"}],"zpuid":"4000000002055"}]
""".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 follower from the record.
OAuth Scope:
ZohoProjects.custom_fields.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/module/[MODULEID]/entity/[ENTITYID]/unfollow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/unfollow";
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/module/[MODULEID]/entity/[ENTITYID]/unfollow');
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/module/[MODULEID]/entity/[ENTITYID]/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"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/unfollow";
$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/module/[MODULEID]/entity/[ENTITYID]/unfollow"
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/module/[MODULEID]/entity/[ENTITYID]/unfollow");
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/module/[MODULEID]/entity/[ENTITYID]/unfollow");
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]/entity/[ENTITYID]/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);
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/module/[MODULEID]/entity/[ENTITYID]/unfollow"
{: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/module/[MODULEID]/entity/[ENTITYID]/unfollow", 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/module/[MODULEID]/entity/[ENTITYID]/unfollow 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]/entity/[ENTITYID]/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/module/[MODULEID]/entity/[ENTITYID]/unfollow';
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/module/[MODULEID]/entity/[ENTITYID]/unfollow")
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/module/[MODULEID]/entity/[ENTITYID]/unfollow"];
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/module/[MODULEID]/entity/[ENTITYID]/unfollow" 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/module/[MODULEID]/entity/[ENTITYID]/unfollow" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/unfollow"
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/module/[MODULEID]/entity/[ENTITYID]/unfollow")!
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
Verify whether the current user is a follower of the record.
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]/entity/[ENTITYID]/isuser' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/isuser";
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]/entity/[ENTITYID]/isuser');
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]/entity/[ENTITYID]/isuser")
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]/entity/[ENTITYID]/isuser";
$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]/entity/[ENTITYID]/isuser"
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]/entity/[ENTITYID]/isuser");
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]/entity/[ENTITYID]/isuser");
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]/entity/[ENTITYID]/isuser");
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]/entity/[ENTITYID]/isuser"
{: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]/entity/[ENTITYID]/isuser", 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]/entity/[ENTITYID]/isuser 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]/entity/[ENTITYID]/isuser");
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]/entity/[ENTITYID]/isuser';
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]/entity/[ENTITYID]/isuser")
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]/entity/[ENTITYID]/isuser"];
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]/entity/[ENTITYID]/isuser" 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]/entity/[ENTITYID]/isuser" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/isuser"
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]/entity/[ENTITYID]/isuser")!
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 custom view of records. Use this API to retrieve, add, or remove custom view of the records.
Get detail of the custom view.
OAuth Scope:
ZohoProjects.custom_fields.READ
Query Parameter
String
requiredEnter the module API name or ID.
long
Enter the project 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/views/[VIEWID]?module=projects&project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]";
params = Map();
params.put("module", "projects");
params.put("project_id", "23806000097545166");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]');
url.searchParams.append('module', 'projects');
url.searchParams.append('project_id', '23806000097545166');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]")
params = {
"module" => "projects",
"project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'module' => 'projects',
'project_id' => '23806000097545166',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]" . "?" . 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/views/[VIEWID]"
params = {
"module": "projects",
"project_id": "23806000097545166"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_module = curl_easy_escape(curl, "projects", 0);
char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]?module=%s&project_id=%s", enc_module, enc_project_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_module);
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["module"] = "projects";
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]") { 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, "projects", 0);
char* enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]";
url += "?module=" + std::string(enc_module);
url += "&project_id=" + std::string(enc_project_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_module);
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-module (java.net.URLEncoder/encode "projects" "UTF-8")
enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]" "?module=" enc-module "&project_id=" enc-project_id)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]", nil)
q := req.URL.Query()
q.Add("module", "projects")
q.Add("project_id", "23806000097545166")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]?module=projects&project_id=23806000097545166 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/views/[VIEWID]");
uriBuilder.addParameter("module", "projects");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]';
const params = new URLSearchParams({
'module': 'projects',
'project_id': '23806000097545166'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
module = "projects"
project_id = "23806000097545166"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/views/[VIEWID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "projects")
urlBuilder.addQueryParameter("project_id", "23806000097545166")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedModule = [@"projects" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]?module=%@&project_id=%@", encodedModule, encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_module = Uri.pct_encode "projects" in
let enc_project_id = Uri.pct_encode "23806000097545166" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]" ^ "?module=" ^ enc_module ^ "&project_id=" ^ enc_project_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
module = "projects"
project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]"
params <- list(
module = "projects",
project_id = "23806000097545166"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/views/[VIEWID]")!
components.queryItems = [
URLQueryItem(name: "module", value: "projects"),
URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This module covers operations related to audit within records. Use this API to retrieve audit details of a record.
Retrieve all changes made to a record. Use this API to view the edit history of the record.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
int
Enter the index of the record.
int
Enter the range of the record.
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/module/[MODULEID]/entity/[ENTITYID]/edits?index=1&range=100&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits";
params = Map();
params.put("index", "1");
params.put("range", "100");
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/module/[MODULEID]/entity/[ENTITYID]/edits');
url.searchParams.append('index', '1');
url.searchParams.append('range', '100');
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/module/[MODULEID]/entity/[ENTITYID]/edits")
params = {
"index" => "1",
"range" => "100",
"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 = [
'index' => '1',
'range' => '100',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits" . "?" . 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/module/[MODULEID]/entity/[ENTITYID]/edits"
params = {
"index": "1",
"range": "100",
"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_index = curl_easy_escape(curl, "1", 0);
char *enc_range = curl_easy_escape(curl, "100", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits?index=%s&range=%s&page=%s&per_page=%s", enc_index, enc_range, 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_index);
curl_free(enc_range);
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["index"] = "1";
query["range"] = "100";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_index = curl_easy_escape(curl, "1", 0);
char* enc_range = curl_easy_escape(curl, "100", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits";
url += "?index=" + std::string(enc_index);
url += "&range=" + std::string(enc_range);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_page);
curl_free(enc_per_page);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-index (java.net.URLEncoder/encode "1" "UTF-8")
enc-range (java.net.URLEncoder/encode "100" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits" "?index=" enc-index "&range=" enc-range "&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/module/[MODULEID]/entity/[ENTITYID]/edits", nil)
q := req.URL.Query()
q.Add("index", "1")
q.Add("range", "100")
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/module/[MODULEID]/entity/[ENTITYID]/edits?index=1&range=100&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/module/[MODULEID]/entity/[ENTITYID]/edits");
uriBuilder.addParameter("index", "1");
uriBuilder.addParameter("range", "100");
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/module/[MODULEID]/entity/[ENTITYID]/edits';
const params = new URLSearchParams({
'index': '1',
'range': '100',
'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));
index = "1"
range = "100"
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/module/[MODULEID]/entity/[ENTITYID]/edits".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("index", "1")
urlBuilder.addQueryParameter("range", "100")
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 *encodedIndex = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"100" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits?index=%@&range=%@&page=%@&per_page=%@", encodedIndex, encodedRange, 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_index = Uri.pct_encode "1" in
let enc_range = Uri.pct_encode "100" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits" ^ "?index=" ^ enc_index ^ "&range=" ^ enc_range ^ "&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 = @{
index = "1"
range = "100"
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/module/[MODULEID]/entity/[ENTITYID]/edits" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits"
params <- list(
index = "1",
range = "100",
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/module/[MODULEID]/entity/[ENTITYID]/edits")!
components.queryItems = [
URLQueryItem(name: "index", value: "1"),
URLQueryItem(name: "range", value: "100"),
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 details of a specific edit using the audit ID.
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/module/[MODULEID]/entity/[ENTITYID]/edits/[EDITID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits/[EDITID]";
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]/entity/[ENTITYID]/edits/[EDITID]');
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]/entity/[ENTITYID]/edits/[EDITID]")
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]/entity/[ENTITYID]/edits/[EDITID]";
$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]/entity/[ENTITYID]/edits/[EDITID]"
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]/entity/[ENTITYID]/edits/[EDITID]");
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]/entity/[ENTITYID]/edits/[EDITID]");
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]/entity/[ENTITYID]/edits/[EDITID]");
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]/entity/[ENTITYID]/edits/[EDITID]"
{: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]/entity/[ENTITYID]/edits/[EDITID]", 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]/entity/[ENTITYID]/edits/[EDITID] 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]/entity/[ENTITYID]/edits/[EDITID]");
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]/entity/[ENTITYID]/edits/[EDITID]';
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]/entity/[ENTITYID]/edits/[EDITID]")
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]/entity/[ENTITYID]/edits/[EDITID]"];
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]/entity/[ENTITYID]/edits/[EDITID]" 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]/entity/[ENTITYID]/edits/[EDITID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits/[EDITID]"
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]/entity/[ENTITYID]/edits/[EDITID]")!
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 total number of edits made to a record within a module.
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/module/[MODULEID]/entity/[ENTITYID]/edits/count' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits/count";
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]/entity/[ENTITYID]/edits/count');
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]/entity/[ENTITYID]/edits/count")
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]/entity/[ENTITYID]/edits/count";
$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]/entity/[ENTITYID]/edits/count"
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]/entity/[ENTITYID]/edits/count");
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]/entity/[ENTITYID]/edits/count");
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]/entity/[ENTITYID]/edits/count");
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]/entity/[ENTITYID]/edits/count"
{: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]/entity/[ENTITYID]/edits/count", 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]/entity/[ENTITYID]/edits/count 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]/entity/[ENTITYID]/edits/count");
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]/entity/[ENTITYID]/edits/count';
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]/entity/[ENTITYID]/edits/count")
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]/entity/[ENTITYID]/edits/count"];
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]/entity/[ENTITYID]/edits/count" 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]/entity/[ENTITYID]/edits/count" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/module/[MODULEID]/entity/[ENTITYID]/edits/count"
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]/entity/[ENTITYID]/edits/count")!
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 forum related operations within Zoho Projects. Use this API to create, update, delete, or move forums, retrieve forum details, and manage tasks or comments associated with forums.
Retrieve all forums in a specific project. Use this API to access the list of forums available within a project.
OAuth Scope:
ZohoProjects.forums.READ
Query Parameter
String
Enter the sort criteria for the forums. Accepted values: created_time, updated_time, last_activity
String
Enter the sort order for the forums. Accepted values: asc, desc
int
Enter the page number.
int
limit : 1-200default : 100
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/forums?sort_by=created_time&sort_order=desc&page=1&per_page=10&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%221%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22software%22%5D%7D%2C%7B%22cfid%22%3A%223%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%228000000002411%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums";
params = Map();
params.put("sort_by", "created_time");
params.put("sort_order", "desc");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"1","criteria_condition":"contains","value":["software"]},{"cfid":"3","criteria_condition":"is","value":["8000000002411"]}],"pattern":"1 AND 2"});
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/forums');
url.searchParams.append('sort_by', 'created_time');
url.searchParams.append('sort_order', 'desc');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('filter', '{"criteria":[{"cfid":"1","criteria_condition":"contains","value":["software"]},{"cfid":"3","criteria_condition":"is","value":["8000000002411"]}],"pattern":"1 AND 2"}');
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/forums")
params = {
"sort_by" => "created_time",
"sort_order" => "desc",
"page" => "1",
"per_page" => "10",
"filter" => "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}"
}
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_by' => 'created_time',
'sort_order' => 'desc',
'page' => '1',
'per_page' => '10',
'filter' => '{"criteria":[{"cfid":"1","criteria_condition":"contains","value":["software"]},{"cfid":"3","criteria_condition":"is","value":["8000000002411"]}],"pattern":"1 AND 2"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums" . "?" . 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/forums"
params = {
"sort_by": "created_time",
"sort_order": "desc",
"page": "1",
"per_page": "10",
"filter": "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}"
}
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_by = curl_easy_escape(curl, "created_time", 0);
char *enc_sort_order = curl_easy_escape(curl, "desc", 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\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums?sort_by=%s&sort_order=%s&page=%s&per_page=%s&filter=%s", enc_sort_by, enc_sort_order, 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_sort_by);
curl_free(enc_sort_order);
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["sort_by"] = "created_time";
query["sort_order"] = "desc";
query["page"] = "1";
query["per_page"] = "10";
query["filter"] = "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums") { 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_by = curl_easy_escape(curl, "created_time", 0);
char* enc_sort_order = curl_easy_escape(curl, "desc", 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\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums";
url += "?sort_by=" + std::string(enc_sort_by);
url += "&sort_order=" + std::string(enc_sort_order);
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_sort_by);
curl_free(enc_sort_order);
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-sort_by (java.net.URLEncoder/encode "created_time" "UTF-8")
enc-sort_order (java.net.URLEncoder/encode "desc" "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\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums" "?sort_by=" enc-sort_by "&sort_order=" enc-sort_order "&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/projects/1752587000000097024/forums", nil)
q := req.URL.Query()
q.Add("sort_by", "created_time")
q.Add("sort_order", "desc")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("filter", "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}")
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/forums?sort_by=created_time&sort_order=desc&page=1&per_page=10&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%221%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22software%22%5D%7D%2C%7B%22cfid%22%3A%223%22%2C%22criteria_condition%22%3A%22is%22%2C%22value%22%3A%5B%228000000002411%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%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/forums");
uriBuilder.addParameter("sort_by", "created_time");
uriBuilder.addParameter("sort_order", "desc");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}");
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/forums';
const params = new URLSearchParams({
'sort_by': 'created_time',
'sort_order': 'desc',
'page': '1',
'per_page': '10',
'filter': '{"criteria":[{"cfid":"1","criteria_condition":"contains","value":["software"]},{"cfid":"3","criteria_condition":"is","value":["8000000002411"]}],"pattern":"1 AND 2"}'
});
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_by = "created_time"
sort_order = "desc"
page = "1"
per_page = "10"
filter = {"criteria":[{"cfid":"1","criteria_condition":"contains","value":["software"]},{"cfid":"3","criteria_condition":"is","value":["8000000002411"]}],"pattern":"1 AND 2"}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/forums".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("sort_by", "created_time")
urlBuilder.addQueryParameter("sort_order", "desc")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}")
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_by = [@"created_time" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_order = [@"desc" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums?sort_by=%@&sort_order=%@&page=%@&per_page=%@&filter=%@", encodedSort_by, encodedSort_order, encodedPage, encodedPer_page, 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_sort_by = Uri.pct_encode "created_time" in
let enc_sort_order = Uri.pct_encode "desc" 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\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums" ^ "?sort_by=" ^ enc_sort_by ^ "&sort_order=" ^ enc_sort_order ^ "&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 = @{
sort_by = "created_time"
sort_order = "desc"
page = "1"
per_page = "10"
filter = "{`"criteria`":[{`"cfid`":`"1`",`"criteria_condition`":`"contains`",`"value`":[`"software`"]},{`"cfid`":`"3`",`"criteria_condition`":`"is`",`"value`":[`"8000000002411`"]}],`"pattern`":`"1 AND 2`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums" + "?" + $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/forums"
params <- list(
sort_by = "created_time",
sort_order = "desc",
page = "1",
per_page = "10",
filter = "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}"
)
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/forums")!
components.queryItems = [
URLQueryItem(name: "sort_by", value: "created_time"),
URLQueryItem(name: "sort_order", value: "desc"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"cfid\":\"1\",\"criteria_condition\":\"contains\",\"value\":[\"software\"]},{\"cfid\":\"3\",\"criteria_condition\":\"is\",\"value\":[\"8000000002411\"]}],\"pattern\":\"1 AND 2\"}")
]
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 forum in a project. Use this API to access the full information of a forum within a project.
OAuth Scope:
ZohoProjects.forums.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/forums/1752587000000097035' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035";
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/forums/1752587000000097035');
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/forums/1752587000000097035")
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/forums/1752587000000097035";
$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/forums/1752587000000097035"
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/forums/1752587000000097035");
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/forums/1752587000000097035");
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/forums/1752587000000097035");
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/forums/1752587000000097035"
{: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/forums/1752587000000097035", 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/forums/1752587000000097035 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/forums/1752587000000097035");
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/forums/1752587000000097035';
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/forums/1752587000000097035")
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/forums/1752587000000097035"];
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/forums/1752587000000097035" 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/forums/1752587000000097035" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035"
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/forums/1752587000000097035")!
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 all tasks associated with a specific forum in a project. Use this API to access the list of tasks linked to a forum.
OAuth Scope:
ZohoProjects.forums.READ
Query Parameter
int
Enter the page number.
int
limit : 1-200default : 100
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/forums/1752587000000097035/tasks?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/tasks";
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/forums/1752587000000097035/tasks');
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/forums/1752587000000097035/tasks")
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/forums/1752587000000097035/tasks" . "?" . 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/forums/1752587000000097035/tasks"
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/forums/1752587000000097035/tasks?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/forums/1752587000000097035/tasks") { 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/forums/1752587000000097035/tasks";
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/forums/1752587000000097035/tasks" "?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/forums/1752587000000097035/tasks", 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/forums/1752587000000097035/tasks?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/forums/1752587000000097035/tasks");
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/forums/1752587000000097035/tasks';
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/forums/1752587000000097035/tasks".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/forums/1752587000000097035/tasks?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/forums/1752587000000097035/tasks" ^ "?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/forums/1752587000000097035/tasks" + "?" + $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/forums/1752587000000097035/tasks"
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/forums/1752587000000097035/tasks")!
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 forum to a specific project. Use this API to create a forum for discussions within a project.
OAuth Scope:
ZohoProjects.forums.CREATE
Parameter
String
requiredmax length : 100
Enter the title of the forum.
String
requiredEnter the content of the forum.
long
requiredEnter the ID of the project category to associate with the forum. Use the Get Categories API to retrieve the category ID.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the tags to associate with the forum.
String
Specify the visibility of the forum. Accepted values: internal (visible only to project users), external (visible to both project and client users)
String
Enter the type of the forum. Accepted values: normal, question
String
Specify whether to pin the forum post to the top. Accepted values: true, false
String
Specify whether to mark the forum post as an announcement. Accepted values: true, false
JSONArray
max length : 7000array size : 0-100
Enter the ZPUIDs of the users to notify about the forum.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the attachments to associate with the forum.
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/forums' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums";
params = Map();
params.put("title", "Software Development Project Discussion");
params.put("content", "Please review the updated project scope and share your feedback by end of day.");
params.put("category_id", 8000000041081);
params.put("tags", [8000000041135]);
params.put("flag", "internal");
params.put("type", "normal");
params.put("is_sticky", true);
params.put("is_announcement", false);
params.put("notify", "true");
params.put("attachment_ids", [8000000094011]);
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/forums');
const payload = JSON.stringify({"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]});
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/forums")
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 = '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}',
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/forums"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}'
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/forums");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"notify\":\"true\",\"attachment_ids\":[8000000094011]}");
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/forums");
request.Content = new StringContent(
@"{""title"":""Software Development Project Discussion"",""content"":""Please review the updated project scope and share your feedback by end of day."",""category_id"":8000000041081,""tags"":[8000000041135],""flag"":""internal"",""type"":""normal"",""is_sticky"":true,""is_announcement"":false,""notify"":""true"",""attachment_ids"":[8000000094011]}",
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/forums");
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, "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"notify\":\"true\",\"attachment_ids\":[8000000094011]}");
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/forums"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"notify\":\"true\",\"attachment_ids\":[8000000094011]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"notify\":\"true\",\"attachment_ids\":[8000000094011]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums", 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/forums HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}
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/forums");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"notify\":\"true\",\"attachment_ids\":[8000000094011]}";
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/forums';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}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/forums")
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("""{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums"];
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 = [@"{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"notify\":\"true\",\"attachment_ids\":[8000000094011]}" 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/forums" 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|{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}|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 = @'
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"notify\":\"true\",\"attachment_ids\":[8000000094011]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums")!
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 = """
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"notify":"true","attachment_ids":[8000000094011]}
""".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 a forum in a specific project. Use this API to modify the details of an existing forum within a project.
OAuth Scope:
ZohoProjects.forums.UPDATE
Parameter
String
max length : 100Enter the updated title of the forum.
String
Enter the updated content of the forum.
long
Enter the ID of the project category to associate with the forum. Use the Get All Forum Categories API to retrieve the category ID.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the tags to associate with the forum.
String
Specify the visibility of the forum. Accepted values: internal (visible only to project users), external (visible to both project and client users)
String
Enter the type of the forum. Accepted values: normal, question
String
Specify whether to pin the forum post to the top. Accepted values: true, false
String
Specify whether to mark the forum post as an announcement. Accepted values: true, false
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the attachments to associate with the forum.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the attachments to remove from the forum.
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/forums/1752587000000097035' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035";
params = Map();
params.put("title", "Software Development Project Discussion");
params.put("content", "Please review the updated project scope and share your feedback by end of day.");
params.put("category_id", 8000000041081);
params.put("tags", [8000000041135]);
params.put("flag", "internal");
params.put("type", "normal");
params.put("is_sticky", true);
params.put("is_announcement", false);
params.put("attachment_ids", [8000000094011]);
params.put("delete_attachment_ids", [8000000094011]);
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/forums/1752587000000097035');
const payload = JSON.stringify({"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]});
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/forums/1752587000000097035")
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 = '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}',
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/forums/1752587000000097035"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}'
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/forums/1752587000000097035");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}");
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/forums/1752587000000097035");
request.Content = new StringContent(
@"{""title"":""Software Development Project Discussion"",""content"":""Please review the updated project scope and share your feedback by end of day."",""category_id"":8000000041081,""tags"":[8000000041135],""flag"":""internal"",""type"":""normal"",""is_sticky"":true,""is_announcement"":false,""attachment_ids"":[8000000094011],""delete_attachment_ids"":[8000000094011]}",
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/forums/1752587000000097035");
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, "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}");
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/forums/1752587000000097035"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035", 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/forums/1752587000000097035 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}
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/forums/1752587000000097035");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}";
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/forums/1752587000000097035';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}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/forums/1752587000000097035")
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("""{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035"];
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 = [@"{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}" 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/forums/1752587000000097035" 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|{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}|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 = @'
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"title\":\"Software Development Project Discussion\",\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"category_id\":8000000041081,\"tags\":[8000000041135],\"flag\":\"internal\",\"type\":\"normal\",\"is_sticky\":true,\"is_announcement\":false,\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035")!
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 = """
{"title":"Software Development Project Discussion","content":"Please review the updated project scope and share your feedback by end of day.","category_id":8000000041081,"tags":[8000000041135],"flag":"internal","type":"normal","is_sticky":true,"is_announcement":false,"attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}
""".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 a forum from a specific project. Use this API to permanently remove a forum and its content from a project.
OAuth Scope:
ZohoProjects.forums.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/forums/1752587000000097035' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035";
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/forums/1752587000000097035');
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/forums/1752587000000097035")
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/forums/1752587000000097035";
$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/forums/1752587000000097035"
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/forums/1752587000000097035");
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/forums/1752587000000097035");
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/forums/1752587000000097035");
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/forums/1752587000000097035"
{: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/forums/1752587000000097035", 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/forums/1752587000000097035 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/forums/1752587000000097035");
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/forums/1752587000000097035';
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/forums/1752587000000097035")
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/forums/1752587000000097035"];
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/forums/1752587000000097035" 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/forums/1752587000000097035" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035"
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/forums/1752587000000097035")!
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 forum comments within Zoho Projects. Use this API to retrieve, add, update, or delete comments associated with forums.
Retrieve all comments from a specific forum in a project. Use this API to access the list of comments posted within a forum.
OAuth Scope:
ZohoProjects.forums.READ
Query Parameter
String
Enter the sort criteria for the comments. Accepted values: created_time, updated_time
String
Enter the sort order for the comments. Accepted values: asc, desc
int
Enter the page number.
int
limit : 1-200default : 100
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/forums/1752587000000097035/comments?sort_by=created_time&sort_order=desc&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments";
params = Map();
params.put("sort_by", "created_time");
params.put("sort_order", "desc");
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/forums/1752587000000097035/comments');
url.searchParams.append('sort_by', 'created_time');
url.searchParams.append('sort_order', 'desc');
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/forums/1752587000000097035/comments")
params = {
"sort_by" => "created_time",
"sort_order" => "desc",
"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_by' => 'created_time',
'sort_order' => 'desc',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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/forums/1752587000000097035/comments"
params = {
"sort_by": "created_time",
"sort_order": "desc",
"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_by = curl_easy_escape(curl, "created_time", 0);
char *enc_sort_order = curl_easy_escape(curl, "desc", 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/forums/1752587000000097035/comments?sort_by=%s&sort_order=%s&page=%s&per_page=%s", enc_sort_by, 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_by);
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_by"] = "created_time";
query["sort_order"] = "desc";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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_by = curl_easy_escape(curl, "created_time", 0);
char* enc_sort_order = curl_easy_escape(curl, "desc", 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/forums/1752587000000097035/comments";
url += "?sort_by=" + std::string(enc_sort_by);
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_by);
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_by (java.net.URLEncoder/encode "created_time" "UTF-8")
enc-sort_order (java.net.URLEncoder/encode "desc" "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/forums/1752587000000097035/comments" "?sort_by=" enc-sort_by "&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/forums/1752587000000097035/comments", nil)
q := req.URL.Query()
q.Add("sort_by", "created_time")
q.Add("sort_order", "desc")
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/forums/1752587000000097035/comments?sort_by=created_time&sort_order=desc&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/forums/1752587000000097035/comments");
uriBuilder.addParameter("sort_by", "created_time");
uriBuilder.addParameter("sort_order", "desc");
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/forums/1752587000000097035/comments';
const params = new URLSearchParams({
'sort_by': 'created_time',
'sort_order': 'desc',
'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_by = "created_time"
sort_order = "desc"
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/forums/1752587000000097035/comments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("sort_by", "created_time")
urlBuilder.addQueryParameter("sort_order", "desc")
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_by = [@"created_time" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_order = [@"desc" 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/forums/1752587000000097035/comments?sort_by=%@&sort_order=%@&page=%@&per_page=%@", encodedSort_by, 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_by = Uri.pct_encode "created_time" in
let enc_sort_order = Uri.pct_encode "desc" 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/forums/1752587000000097035/comments" ^ "?sort_by=" ^ enc_sort_by ^ "&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_by = "created_time"
sort_order = "desc"
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/forums/1752587000000097035/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/forums/1752587000000097035/comments"
params <- list(
sort_by = "created_time",
sort_order = "desc",
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/forums/1752587000000097035/comments")!
components.queryItems = [
URLQueryItem(name: "sort_by", value: "created_time"),
URLQueryItem(name: "sort_order", value: "desc"),
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 a specific comment from a forum in a project. Use this API to access the details of a particular comment within a forum.
OAuth Scope:
ZohoProjects.forums.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/forums/1752587000000097035/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/comments/1752587000000097046" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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/forums/1752587000000097035/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
Retrieve the details of a specific forum comment using its comment ID. Use this API to access a forum comment without requiring the forum ID.
OAuth Scope:
ZohoProjects.forums.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/forumcomments/1752587000000097013' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forumcomments/1752587000000097013";
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/forumcomments/1752587000000097013');
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/forumcomments/1752587000000097013")
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/forumcomments/1752587000000097013";
$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/forumcomments/1752587000000097013"
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/forumcomments/1752587000000097013");
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/forumcomments/1752587000000097013");
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/forumcomments/1752587000000097013");
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/forumcomments/1752587000000097013"
{: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/forumcomments/1752587000000097013", 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/forumcomments/1752587000000097013 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/forumcomments/1752587000000097013");
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/forumcomments/1752587000000097013';
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/forumcomments/1752587000000097013")
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/forumcomments/1752587000000097013"];
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/forumcomments/1752587000000097013" 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/forumcomments/1752587000000097013" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forumcomments/1752587000000097013"
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/forumcomments/1752587000000097013")!
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 specific forum in a project. Use this API to post a comment on a forum within a project.
OAuth Scope:
ZohoProjects.forums.CREATE
Parameter
String
requiredEnter the content of the comment.
String
Enter the type of the comment. Accepted values: question, answer, normal
JSONArray
max length : 7000array size : 0-100
Enter the ZPUIDs of the users to notify about the comment.
long
Enter the ID of the root comment to post a nested reply.
long
Enter the ID of the parent comment to post a direct reply.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the attachments to associate with the comment.
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/forums/1752587000000097035/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments";
params = Map();
params.put("content", "Please review the updated project scope and share your feedback by end of day.");
params.put("type", "normal");
params.put("notify", "true");
params.put("root_id", "8000000097003");
params.put("parent_id", "8000000096019");
params.put("attachment_ids", [8000000094011]);
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/forums/1752587000000097035/comments');
const payload = JSON.stringify({"content":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]});
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/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"content":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}',
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/forums/1752587000000097035/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}'
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/forums/1752587000000097035/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"type\":\"normal\",\"notify\":\"true\",\"root_id\":\"8000000097003\",\"parent_id\":\"8000000096019\",\"attachment_ids\":[8000000094011]}");
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/forums/1752587000000097035/comments");
request.Content = new StringContent(
@"{""content"":""Please review the updated project scope and share your feedback by end of day."",""type"":""normal"",""notify"":""true"",""root_id"":""8000000097003"",""parent_id"":""8000000096019"",""attachment_ids"":[8000000094011]}",
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/forums/1752587000000097035/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\":\"Please review the updated project scope and share your feedback by end of day.\",\"type\":\"normal\",\"notify\":\"true\",\"root_id\":\"8000000097003\",\"parent_id\":\"8000000096019\",\"attachment_ids\":[8000000094011]}");
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/forums/1752587000000097035/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"type\":\"normal\",\"notify\":\"true\",\"root_id\":\"8000000097003\",\"parent_id\":\"8000000096019\",\"attachment_ids\":[8000000094011]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"type\":\"normal\",\"notify\":\"true\",\"root_id\":\"8000000097003\",\"parent_id\":\"8000000096019\",\"attachment_ids\":[8000000094011]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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/forums/1752587000000097035/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}
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/forums/1752587000000097035/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"type\":\"normal\",\"notify\":\"true\",\"root_id\":\"8000000097003\",\"parent_id\":\"8000000096019\",\"attachment_ids\":[8000000094011]}";
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/forums/1752587000000097035/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}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/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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\":\"Please review the updated project scope and share your feedback by end of day.\",\"type\":\"normal\",\"notify\":\"true\",\"root_id\":\"8000000097003\",\"parent_id\":\"8000000096019\",\"attachment_ids\":[8000000094011]}" 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/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}|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":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"type\":\"normal\",\"notify\":\"true\",\"root_id\":\"8000000097003\",\"parent_id\":\"8000000096019\",\"attachment_ids\":[8000000094011]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","type":"normal","notify":"true","root_id":"8000000097003","parent_id":"8000000096019","attachment_ids":[8000000094011]}
""".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
INVALID_PARAMETER_VALUE HTTP 400
Update a comment in a specific forum in a project. Use this API to modify the content of an existing comment within a forum.
OAuth Scope:
ZohoProjects.forums.UPDATE
Parameter
String
requiredEnter the updated content of the comment.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the attachments to associate with the comment.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the attachments to remove from the comment.
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/forums/1752587000000097035/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046";
params = Map();
params.put("content", "Please review the updated project scope and share your feedback by end of day.");
params.put("attachment_ids", [8000000094011]);
params.put("delete_attachment_ids", [8000000094011]);
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/forums/1752587000000097035/comments/1752587000000097046');
const payload = JSON.stringify({"content":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]});
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/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"content":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}',
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/forums/1752587000000097035/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}'
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/forums/1752587000000097035/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}");
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/forums/1752587000000097035/comments/1752587000000097046");
request.Content = new StringContent(
@"{""content"":""Please review the updated project scope and share your feedback by end of day."",""attachment_ids"":[8000000094011],""delete_attachment_ids"":[8000000094011]}",
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/forums/1752587000000097035/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\":\"Please review the updated project scope and share your feedback by end of day.\",\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}");
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/forums/1752587000000097035/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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/forums/1752587000000097035/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}
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/forums/1752587000000097035/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}";
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/forums/1752587000000097035/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}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/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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\":\"Please review the updated project scope and share your feedback by end of day.\",\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}" 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/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}|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":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Please review the updated project scope and share your feedback by end of day.\",\"attachment_ids\":[8000000094011],\"delete_attachment_ids\":[8000000094011]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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":"Please review the updated project scope and share your feedback by end of day.","attachment_ids":[8000000094011],"delete_attachment_ids":[8000000094011]}
""".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 a comment from a specific forum in a project. Use this API to permanently remove a comment from a forum within a project.
OAuth Scope:
ZohoProjects.forums.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/forums/1752587000000097035/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/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/forums/1752587000000097035/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/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/forums/1752587000000097035/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
Mark a specific comment as the best answer in a forum. Use this API to highlight the most helpful response within a forum discussion.
OAuth Scope:
ZohoProjects.forums.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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046/markbestanswer";
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer');
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer")
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer";
$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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"
{: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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer", 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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer 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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer';
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer")
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"];
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer" 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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer")!
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 the best answer designation from a specific comment in a forum. Use this API to unmark a comment that was previously marked as the best answer in a forum discussion.
OAuth Scope:
ZohoProjects.forums.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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046/markbestanswer' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046/markbestanswer";
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer');
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer")
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer";
$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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"
{: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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer", 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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer 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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer");
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer';
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer")
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"];
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer" 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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/comments/1752587000000097046/markbestanswer"
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/forums/1752587000000097035/comments/1752587000000097046/markbestanswer")!
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 forum category within Zoho Projects. Use this API to retrieve, add, update, or delete categories associated with forums.
Retrieve all forum categories in a specific project. Use this API to access the list of categories available for forums within a project.
OAuth Scope:
ZohoProjects.forums.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
Enter the number of entries to be displayed per page.
String
Enter the sort criteria for the categories. Accepted values: created_time, updated_time
String
Enter the sort order for the categories. Accepted values: asc, desc
String
Enter the search term to filter categories.
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/categories?page=1&per_page=10&sort_by=created_time&sort_order=desc&searchTerm=-' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("sort_by", "created_time");
params.put("sort_order", "desc");
params.put("searchTerm", "-");
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/categories');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('sort_by', 'created_time');
url.searchParams.append('sort_order', 'desc');
url.searchParams.append('searchTerm', '-');
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/categories")
params = {
"page" => "1",
"per_page" => "10",
"sort_by" => "created_time",
"sort_order" => "desc",
"searchTerm" => "-"
}
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' => 'created_time',
'sort_order' => 'desc',
'searchTerm' => '-',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories" . "?" . 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/categories"
params = {
"page": "1",
"per_page": "10",
"sort_by": "created_time",
"sort_order": "desc",
"searchTerm": "-"
}
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, "created_time", 0);
char *enc_sort_order = curl_easy_escape(curl, "desc", 0);
char *enc_searchTerm = curl_easy_escape(curl, "-", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories?page=%s&per_page=%s&sort_by=%s&sort_order=%s&searchTerm=%s", enc_page, enc_per_page, enc_sort_by, enc_sort_order, enc_searchTerm);
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_sort_order);
curl_free(enc_searchTerm);
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"] = "created_time";
query["sort_order"] = "desc";
query["searchTerm"] = "-";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories") { 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, "created_time", 0);
char* enc_sort_order = curl_easy_escape(curl, "desc", 0);
char* enc_searchTerm = curl_easy_escape(curl, "-", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&sort_by=" + std::string(enc_sort_by);
url += "&sort_order=" + std::string(enc_sort_order);
url += "&searchTerm=" + std::string(enc_searchTerm);
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_sort_order);
curl_free(enc_searchTerm);
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 "created_time" "UTF-8")
enc-sort_order (java.net.URLEncoder/encode "desc" "UTF-8")
enc-searchTerm (java.net.URLEncoder/encode "-" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories" "?page=" enc-page "&per_page=" enc-per_page "&sort_by=" enc-sort_by "&sort_order=" enc-sort_order "&searchTerm=" enc-searchTerm)]
(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/categories", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("sort_by", "created_time")
q.Add("sort_order", "desc")
q.Add("searchTerm", "-")
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/categories?page=1&per_page=10&sort_by=created_time&sort_order=desc&searchTerm=- 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/categories");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("sort_by", "created_time");
uriBuilder.addParameter("sort_order", "desc");
uriBuilder.addParameter("searchTerm", "-");
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/categories';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'sort_by': 'created_time',
'sort_order': 'desc',
'searchTerm': '-'
});
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 = "created_time"
sort_order = "desc"
searchTerm = -
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/categories".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("sort_by", "created_time")
urlBuilder.addQueryParameter("sort_order", "desc")
urlBuilder.addQueryParameter("searchTerm", "-")
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 = [@"created_time" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_order = [@"desc" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearchTerm = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories?page=%@&per_page=%@&sort_by=%@&sort_order=%@&searchTerm=%@", encodedPage, encodedPer_page, encodedSort_by, encodedSort_order, encodedSearchTerm];
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 "created_time" in
let enc_sort_order = Uri.pct_encode "desc" in
let enc_searchTerm = Uri.pct_encode "-" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&sort_by=" ^ enc_sort_by ^ "&sort_order=" ^ enc_sort_order ^ "&searchTerm=" ^ enc_searchTerm) 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 = "created_time"
sort_order = "desc"
searchTerm = "-"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories" + "?" + $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/categories"
params <- list(
page = "1",
per_page = "10",
sort_by = "created_time",
sort_order = "desc",
searchTerm = "-"
)
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/categories")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "sort_by", value: "created_time"),
URLQueryItem(name: "sort_order", value: "desc"),
URLQueryItem(name: "searchTerm", 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
Add a new category for forums in a specific project. Use this API to create a forum category to organize discussions within a project.
OAuth Scope:
ZohoProjects.forums.CREATE
Parameter
String
requiredmax length : 200
Enter the name of the category.
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/categories' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Software Development"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories";
params = Map();
params.put("name", "Software Development");
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/categories');
const payload = JSON.stringify({"name":"Software Development"});
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/categories")
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":"Software Development"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Software Development"}',
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/categories"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Software Development"}'
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/categories");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Software Development\"}");
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/categories");
request.Content = new StringContent(
@"{""name"":""Software Development""}",
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/categories");
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\":\"Software Development\"}");
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/categories"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Software Development\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Software Development\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories", 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/categories HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Software Development"}
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/categories");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Software Development\"}";
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/categories';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Software Development"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Software Development"}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/categories")
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":"Software Development"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories"];
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\":\"Software Development\"}" 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/categories" 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":"Software Development"}|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":"Software Development"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Software Development\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories")!
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":"Software Development"}
""".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_PARAMETER_VALUE HTTP 400
Update a forum category in a specific project. Use this API to modify the name of an existing forum category within a project.
OAuth Scope:
ZohoProjects.forums.UPDATE
Parameter
String
requiredmax length : 200
Enter the name of the category.
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/categories/1752587000000097234' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Software Development"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234";
params = Map();
params.put("name", "Software Development");
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/categories/1752587000000097234');
const payload = JSON.stringify({"name":"Software Development"});
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/categories/1752587000000097234")
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":"Software Development"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Software Development"}',
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/categories/1752587000000097234"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Software Development"}'
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/categories/1752587000000097234");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Software Development\"}");
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/categories/1752587000000097234");
request.Content = new StringContent(
@"{""name"":""Software Development""}",
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/categories/1752587000000097234");
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\":\"Software Development\"}");
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/categories/1752587000000097234"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Software Development\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Software Development\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234", 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/categories/1752587000000097234 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Software Development"}
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/categories/1752587000000097234");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Software Development\"}";
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/categories/1752587000000097234';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Software Development"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Software Development"}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/categories/1752587000000097234")
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":"Software Development"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234"];
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\":\"Software Development\"}" 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/categories/1752587000000097234" 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":"Software Development"}|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":"Software Development"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Software Development\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234")!
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":"Software Development"}
""".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 a forum category from a specific project. Use this API to permanently remove a forum category within a project.
OAuth Scope:
ZohoProjects.forums.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/categories/1752587000000097234' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234";
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/categories/1752587000000097234');
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/categories/1752587000000097234")
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/categories/1752587000000097234";
$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/categories/1752587000000097234"
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/categories/1752587000000097234");
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/categories/1752587000000097234");
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/categories/1752587000000097234");
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/categories/1752587000000097234"
{: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/categories/1752587000000097234", 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/categories/1752587000000097234 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/categories/1752587000000097234");
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/categories/1752587000000097234';
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/categories/1752587000000097234")
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/categories/1752587000000097234"];
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/categories/1752587000000097234" 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/categories/1752587000000097234" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/categories/1752587000000097234"
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/categories/1752587000000097234")!
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 forum follower operations within Zoho Projects. Use this API to follow or unfollow forums and retrieve a list of followers.
Retrieve all followers of a specific forum in a project. Use this API to access the list of users subscribed to forum notifications within a project.
OAuth Scope:
ZohoProjects.forums.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/forums/1752587000000097035/followers' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/followers";
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/forums/1752587000000097035/followers');
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/forums/1752587000000097035/followers")
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/forums/1752587000000097035/followers";
$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/forums/1752587000000097035/followers"
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/forums/1752587000000097035/followers");
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/forums/1752587000000097035/followers");
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/forums/1752587000000097035/followers");
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/forums/1752587000000097035/followers"
{: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/forums/1752587000000097035/followers", 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/forums/1752587000000097035/followers 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/forums/1752587000000097035/followers");
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/forums/1752587000000097035/followers';
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/forums/1752587000000097035/followers")
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/forums/1752587000000097035/followers"];
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/forums/1752587000000097035/followers" 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/forums/1752587000000097035/followers" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/followers"
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/forums/1752587000000097035/followers")!
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
Follow a specific forum in a project to receive notifications. Use this API to subscribe a user to forum updates within a project.
OAuth Scope:
ZohoProjects.forums.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/forums/1752587000000097035/follow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/follow";
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/forums/1752587000000097035/follow');
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/forums/1752587000000097035/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"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/follow";
$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/forums/1752587000000097035/follow"
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/forums/1752587000000097035/follow");
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/forums/1752587000000097035/follow");
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/forums/1752587000000097035/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);
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/forums/1752587000000097035/follow"
{: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/forums/1752587000000097035/follow", 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/forums/1752587000000097035/follow 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/forums/1752587000000097035/follow");
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/forums/1752587000000097035/follow';
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/forums/1752587000000097035/follow")
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/forums/1752587000000097035/follow"];
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/forums/1752587000000097035/follow" 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/forums/1752587000000097035/follow" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/follow"
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/forums/1752587000000097035/follow")!
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
Unfollow a specific forum in a project to stop receiving notifications. Use this API to unsubscribe a user from forum updates within a project.
OAuth Scope:
ZohoProjects.forums.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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/unfollow' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/unfollow";
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/forums/1752587000000097035/unfollow');
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/forums/1752587000000097035/unfollow")
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/forums/1752587000000097035/unfollow";
$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/forums/1752587000000097035/unfollow"
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/forums/1752587000000097035/unfollow");
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/forums/1752587000000097035/unfollow");
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/forums/1752587000000097035/unfollow");
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/forums/1752587000000097035/unfollow"
{: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/forums/1752587000000097035/unfollow", 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/forums/1752587000000097035/unfollow 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/forums/1752587000000097035/unfollow");
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/forums/1752587000000097035/unfollow';
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/forums/1752587000000097035/unfollow")
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/forums/1752587000000097035/unfollow"];
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/forums/1752587000000097035/unfollow" 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/forums/1752587000000097035/unfollow" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/forums/1752587000000097035/unfollow"
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/forums/1752587000000097035/unfollow")!
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
This module covers event-related operations within Zoho Projects. Use this API to create, update, delete, and retrieve events or event details, including participants.
Retrieve all events associated with a specific project. Use this API to access the list of events scheduled within a project.
OAuth Scope:
ZohoProjects.events.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the status of the events to retrieve. Accepted values: open, completed
String
Enter the IDs of the specific events 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/events?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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&status=-&ids=4000000029001' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"});
params.put("status", "-");
params.put("ids", "4000000029001");
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/events');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}');
url.searchParams.append('status', '-');
url.searchParams.append('ids', '4000000029001');
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/events")
params = {
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"status" => "-",
"ids" => "4000000029001"
}
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","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'status' => '-',
'ids' => '4000000029001',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events" . "?" . 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/events"
params = {
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"status": "-",
"ids": "4000000029001"
}
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\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_status = curl_easy_escape(curl, "-", 0);
char *enc_ids = curl_easy_escape(curl, "4000000029001", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events?page=%s&per_page=%s&\"filter\"=%s&status=%s&ids=%s", enc_page, enc_per_page, enc_"filter", enc_status, enc_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_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_status);
curl_free(enc_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["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
query["status"] = "-";
query["ids"] = "4000000029001";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events") { 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\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_status = curl_easy_escape(curl, "-", 0);
char* enc_ids = curl_easy_escape(curl, "4000000029001", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&"filter"=" + std::string(enc_"filter");
url += "&status=" + std::string(enc_status);
url += "&ids=" + std::string(enc_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_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_status);
curl_free(enc_ids);
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\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-status (java.net.URLEncoder/encode "-" "UTF-8")
enc-ids (java.net.URLEncoder/encode "4000000029001" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events" "?page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&status=" enc-status "&ids=" enc-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/events", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
q.Add("status", "-")
q.Add("ids", "4000000029001")
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/events?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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&status=-&ids=4000000029001 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/events");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("status", "-");
uriBuilder.addParameter("ids", "4000000029001");
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/events';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'status': '-',
'ids': '4000000029001'
});
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","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}
status = -
ids = "4000000029001"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/events".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("status", "-")
urlBuilder.addQueryParameter("ids", "4000000029001")
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\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedStatus = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIds = [@"4000000029001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events?page=%@&per_page=%@&"filter"=%@&status=%@&ids=%@", encodedPage, encodedPer_page, encoded"filter", encodedStatus, encodedIds];
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\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" in
let enc_status = Uri.pct_encode "-" in
let enc_ids = Uri.pct_encode "4000000029001" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&status=" ^ enc_status ^ "&ids=" ^ enc_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 = @{
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"-`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"-`",`"unit`":`"-`",`"prior`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
status = "-"
ids = "4000000029001"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events" + "?" + $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/events"
params <- list(
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
status = "-",
ids = "4000000029001"
)
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/events")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "status", value: "-"),
URLQueryItem(name: "ids", value: "4000000029001")
]
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 event in a project. Use this API to access the full information of an event within a project.
OAuth Scope:
ZohoProjects.events.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/events/[EVENTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]";
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/events/[EVENTID]');
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/events/[EVENTID]")
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/events/[EVENTID]";
$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/events/[EVENTID]"
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/events/[EVENTID]");
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/events/[EVENTID]");
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/events/[EVENTID]");
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/events/[EVENTID]"
{: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/events/[EVENTID]", 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/events/[EVENTID] 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/events/[EVENTID]");
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/events/[EVENTID]';
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/events/[EVENTID]")
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/events/[EVENTID]"];
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/events/[EVENTID]" 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/events/[EVENTID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]"
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/events/[EVENTID]")!
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 all participants of a specific event in a portal. Use this API to access the list of users participating in an event.
OAuth Scope:
ZohoProjects.events.READ
Query Parameter
int
Enter the page number.
int
Specify 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/events/[EVENTID]/participants?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/events/[EVENTID]/participants";
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/events/[EVENTID]/participants');
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/events/[EVENTID]/participants")
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/events/[EVENTID]/participants" . "?" . 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/events/[EVENTID]/participants"
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/events/[EVENTID]/participants?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/events/[EVENTID]/participants") { 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/events/[EVENTID]/participants";
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/events/[EVENTID]/participants" "?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/events/[EVENTID]/participants", 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/events/[EVENTID]/participants?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/events/[EVENTID]/participants");
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/events/[EVENTID]/participants';
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/events/[EVENTID]/participants".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/events/[EVENTID]/participants?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/events/[EVENTID]/participants" ^ "?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/events/[EVENTID]/participants" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/events/[EVENTID]/participants"
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/events/[EVENTID]/participants")!
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 event to a specific project. Use this API to create and schedule an event within a project.
OAuth Scope:
ZohoProjects.events.CREATE
Parameter
String
requiredmax length : 150
Enter the title of the event.
String
requiredEnter the start date and time of the event. Format: ISO 8601
String
requiredEnter the end date and time of the event. Format: ISO 8601
String
Enter the reminder duration before the event starts.
String
Enter the recurrence frequency of the event. Accepted values: only once, every day, every week, every month, every year
int
Enter the number of times the event should recur.
String
max length : 200Enter the location of the event.
JSONArray
requiredmax length : 7000
array size : 0-500
Enter the ZPUIDs of the attendees for the event.
JSONArray
Enter the IDs of the attachments to associate with the event.
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/events' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events";
params = Map();
params.put("title", "admin Event");
params.put("starts_at", "2022-06-15T12:48:53.523Z");
params.put("ends_at", "2022-06-15T13:48:53.524Z");
params.put("remind_before", "on time");
params.put("recurrence_frequency", "every day");
params.put("recurrence_count", "5");
params.put("location", "chennai");
params.put("attendees", "[23806000000152047]");
params.put("attachment_ids", " [23806000097572061]");
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/events');
const payload = JSON.stringify({"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"});
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/events")
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 = '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}',
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/events"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}'
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/events");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\",\"attachment_ids\":\" [23806000097572061]\"}");
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/events");
request.Content = new StringContent(
@"{""title"":""admin Event"",""starts_at"":""2022-06-15T12:48:53.523Z"",""ends_at"":""2022-06-15T13:48:53.524Z"",""remind_before"":""on time"",""recurrence_frequency"":""every day"",""recurrence_count"":""5"",""location"":""chennai"",""attendees"":""[23806000000152047]"",""attachment_ids"":"" [23806000097572061]""}",
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/events");
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, "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\",\"attachment_ids\":\" [23806000097572061]\"}");
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/events"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\",\"attachment_ids\":\" [23806000097572061]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\",\"attachment_ids\":\" [23806000097572061]\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events", 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/events HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}
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/events");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\",\"attachment_ids\":\" [23806000097572061]\"}";
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/events';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}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/events")
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("""{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events"];
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 = [@"{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\",\"attachment_ids\":\" [23806000097572061]\"}" 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/events" 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|{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}|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 = @'
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\",\"attachment_ids\":\" [23806000097572061]\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events")!
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 = """
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]","attachment_ids":" [23806000097572061]"}
""".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 specific event in a project.
OAuth Scope:
ZohoProjects.events.UPDATE
Parameter
String
max length : 150Enter the updated title of the event.
String
Enter the updated start date and time of the event. Format: ISO 8601
String
Enter the updated end date and time of the event. Format: ISO 8601
String
Enter the reminder duration before the event starts.
String
Enter the recurrence frequency of the event. Accepted values: only once, every day, every week, every month, every year
int
Enter the number of times the event should recur.
String
max length : 200Enter the updated location of the event.
JSONArray
max length : 7000array size : 0-500
Enter the updated list of attendee ZPUIDs for the event.
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/events/[EVENTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]";
params = Map();
params.put("title", "admin Event");
params.put("starts_at", "2022-06-15T12:48:53.523Z");
params.put("ends_at", "2022-06-15T13:48:53.524Z");
params.put("remind_before", "on time");
params.put("recurrence_frequency", "every day");
params.put("recurrence_count", "5");
params.put("location", "chennai");
params.put("attendees", "[23806000000152047]");
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/events/[EVENTID]');
const payload = JSON.stringify({"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"});
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/events/[EVENTID]")
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 = '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}',
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/events/[EVENTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}'
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/events/[EVENTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\"}");
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/events/[EVENTID]");
request.Content = new StringContent(
@"{""title"":""admin Event"",""starts_at"":""2022-06-15T12:48:53.523Z"",""ends_at"":""2022-06-15T13:48:53.524Z"",""remind_before"":""on time"",""recurrence_frequency"":""every day"",""recurrence_count"":""5"",""location"":""chennai"",""attendees"":""[23806000000152047]""}",
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/events/[EVENTID]");
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, "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\"}");
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/events/[EVENTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]", 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/events/[EVENTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}
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/events/[EVENTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\"}";
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/events/[EVENTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}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/events/[EVENTID]")
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("""{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]"];
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 = [@"{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\"}" 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/events/[EVENTID]" 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|{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}|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 = @'
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"title\":\"admin Event\",\"starts_at\":\"2022-06-15T12:48:53.523Z\",\"ends_at\":\"2022-06-15T13:48:53.524Z\",\"remind_before\":\"on time\",\"recurrence_frequency\":\"every day\",\"recurrence_count\":\"5\",\"location\":\"chennai\",\"attendees\":\"[23806000000152047]\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]")!
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 = """
{"title":"admin Event","starts_at":"2022-06-15T12:48:53.523Z","ends_at":"2022-06-15T13:48:53.524Z","remind_before":"on time","recurrence_frequency":"every day","recurrence_count":"5","location":"chennai","attendees":"[23806000000152047]"}
""".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 specific event from a project. Use this API to permanently remove an event from a project.
OAuth Scope:
ZohoProjects.events.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/events/[EVENTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]";
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/events/[EVENTID]');
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/events/[EVENTID]")
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/events/[EVENTID]";
$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/events/[EVENTID]"
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/events/[EVENTID]");
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/events/[EVENTID]");
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/events/[EVENTID]");
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/events/[EVENTID]"
{: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/events/[EVENTID]", 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/events/[EVENTID] 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/events/[EVENTID]");
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/events/[EVENTID]';
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/events/[EVENTID]")
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/events/[EVENTID]"];
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/events/[EVENTID]" 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/events/[EVENTID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]"
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/events/[EVENTID]")!
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 comment operations for events within Zoho Projects. Use this API to add, update, delete, or retrieve comments related to events.
Retrieve all comments on a specific event in a project. Use this API to access the list of comments posted on an event within a project.
OAuth Scope:
ZohoProjects.events.READ
Query Parameter
int
Enter the page number.
int
Specify 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/events/[EVENTID]/comments?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments";
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/events/[EVENTID]/comments');
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/events/[EVENTID]/comments")
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/events/[EVENTID]/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/events/[EVENTID]/comments"
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/events/[EVENTID]/comments?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/events/[EVENTID]/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);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments";
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/events/[EVENTID]/comments" "?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/events/[EVENTID]/comments", 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/events/[EVENTID]/comments?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/events/[EVENTID]/comments");
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/events/[EVENTID]/comments';
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/events/[EVENTID]/comments".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/events/[EVENTID]/comments?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/events/[EVENTID]/comments" ^ "?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/events/[EVENTID]/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/events/[EVENTID]/comments"
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/events/[EVENTID]/comments")!
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 details of a specific event comment using its comment ID. Use this API to access an event comment without requiring the event ID.
OAuth Scope:
ZohoProjects.events.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/eventcomments/[EVENTCOMMENTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/eventcomments/[EVENTCOMMENTID]";
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/eventcomments/[EVENTCOMMENTID]');
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/eventcomments/[EVENTCOMMENTID]")
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/eventcomments/[EVENTCOMMENTID]";
$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/eventcomments/[EVENTCOMMENTID]"
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/eventcomments/[EVENTCOMMENTID]");
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/eventcomments/[EVENTCOMMENTID]");
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/eventcomments/[EVENTCOMMENTID]");
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/eventcomments/[EVENTCOMMENTID]"
{: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/eventcomments/[EVENTCOMMENTID]", 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/eventcomments/[EVENTCOMMENTID] 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/eventcomments/[EVENTCOMMENTID]");
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/eventcomments/[EVENTCOMMENTID]';
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/eventcomments/[EVENTCOMMENTID]")
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/eventcomments/[EVENTCOMMENTID]"];
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/eventcomments/[EVENTCOMMENTID]" 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/eventcomments/[EVENTCOMMENTID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/eventcomments/[EVENTCOMMENTID]"
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/eventcomments/[EVENTCOMMENTID]")!
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 specific event in a project. Use this API to post a comment on an event within a project.
OAuth Scope:
ZohoProjects.events.CREATE
Parameter
String
requiredmax length : 65000
Enter the content of the event comment.
JSONArray
Enter the IDs of the attachments to associate with the comment.
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/events/[EVENTID]/comments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments";
params = Map();
params.put("content", "Zoho Projects API");
params.put("attachment_ids", " [23806000097572061]");
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/events/[EVENTID]/comments');
const payload = JSON.stringify({"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"});
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/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}',
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/events/[EVENTID]/comments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}'
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/events/[EVENTID]/comments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}");
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/events/[EVENTID]/comments");
request.Content = new StringContent(
@"{""content"":""Zoho Projects API"",""attachment_ids"":"" [23806000097572061]""}",
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/events/[EVENTID]/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\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}");
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/events/[EVENTID]/comments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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/events/[EVENTID]/comments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}
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/events/[EVENTID]/comments");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}";
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/events/[EVENTID]/comments';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}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/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}" 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/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}|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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}
""".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 a specific comment on an event in a project.
OAuth Scope:
ZohoProjects.events.UPDATE
Parameter
String
requiredEnter the updated content of the event comment.
JSONArray
Enter the IDs of the attachments to associate with the comment.
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/events/[EVENTID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments/1752587000000097046";
params = Map();
params.put("content", "Zoho Projects API");
params.put("attachment_ids", " [23806000097572061]");
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/events/[EVENTID]/comments/1752587000000097046');
const payload = JSON.stringify({"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"});
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/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments/1752587000000097046";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}',
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/events/[EVENTID]/comments/1752587000000097046"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}'
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/events/[EVENTID]/comments/1752587000000097046");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}");
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/events/[EVENTID]/comments/1752587000000097046");
request.Content = new StringContent(
@"{""content"":""Zoho Projects API"",""attachment_ids"":"" [23806000097572061]""}",
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/events/[EVENTID]/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\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}");
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/events/[EVENTID]/comments/1752587000000097046"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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/events/[EVENTID]/comments/1752587000000097046 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}
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/events/[EVENTID]/comments/1752587000000097046");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}";
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/events/[EVENTID]/comments/1752587000000097046';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Zoho Projects API","attachment_ids":" [23806000097572061]"}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/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}" 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/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}|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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments/1752587000000097046" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/comments/1752587000000097046"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Zoho Projects API\",\"attachment_ids\":\" [23806000097572061]\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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":"Zoho Projects API","attachment_ids":" [23806000097572061]"}
""".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 specific comment from an event in a project.
OAuth Scope:
ZohoProjects.events.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/events/[EVENTID]/comments/1752587000000097046' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/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/events/[EVENTID]/comments/1752587000000097046" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/events/[EVENTID]/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/events/[EVENTID]/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 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, 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=1&view_type=1&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%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", "1");
params.put("view_type", "1");
params.put("sort", "alphabetical:asc");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"});
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', '1');
url.searchParams.append('view_type', '1');
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":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}');
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" => "1",
"view_type" => "1",
"sort" => "alphabetical:asc",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"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' => '1',
'view_type' => '1',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'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": "1",
"view_type": "1",
"sort": "alphabetical:asc",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"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, "1", 0);
char *enc_view_type = curl_easy_escape(curl, "1", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 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"] = "1";
query["view_type"] = "1";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
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, "1", 0);
char* enc_view_type = curl_easy_escape(curl, "1", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 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 "1" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "1" "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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "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", "1")
q.Add("view_type", "1")
q.Add("sort", "alphabetical:asc")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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=1&view_type=1&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%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", "1");
uriBuilder.addParameter("view_type", "1");
uriBuilder.addParameter("sort", "alphabetical:asc");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
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': '1',
'view_type': '1',
'sort': 'alphabetical:asc',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'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 = "1"
view_type = "1"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}
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", "1")
urlBuilder.addQueryParameter("view_type", "1")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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 = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"1" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" 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 "1" in
let enc_view_type = Uri.pct_encode "1" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" 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 = "1"
view_type = "1"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"-`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"-`",`"unit`":`"-`",`"prior`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
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 = "1",
view_type = "1",
sort = "alphabetical:asc",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
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: "1"),
URLQueryItem(name: "view_type", value: "1"),
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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"),
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 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 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":"-","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":"-","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":"-","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\":\"-\",\"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":"-","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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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%22%5B%5C%2223806000074760021%5C%22%5D%22%2C%22bulk_projects%22%3A%7B%22select_all%22%3A%22false%22%2C%22selected%22%3A%7B%22group_ids%22%3A%22%5B%5C%222380600000612345%5C%22%5D%22%2C%22project_ids%22%3A%22%5B%5C%2223806000074760021%5C%22%5D%22%7D%2C%22unselected%22%3A%7B%22group_ids%22%3A%22%5B%5C%222380600000612345%5C%22%5D%22%2C%22project_ids%22%3A%22%5B%5C%2223806000074760021%5C%22%5D%22%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%22-%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\":\"-\",\"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":"-","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":"-","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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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`":`"-`",`"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\":\"-\",\"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\":\"-\",\"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":"-","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":"-","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":"-","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\":\"-\",\"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":"-","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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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%22%5B%5C%2223806000074760021%5C%22%5D%22%2C%22bulk_projects%22%3A%7B%22select_all%22%3A%22false%22%2C%22selected%22%3A%7B%22group_ids%22%3A%22%5B%5C%222380600000612345%5C%22%5D%22%2C%22project_ids%22%3A%22%5B%5C%2223806000074760021%5C%22%5D%22%7D%2C%22unselected%22%3A%7B%22group_ids%22%3A%22%5B%5C%222380600000612345%5C%22%5D%22%2C%22project_ids%22%3A%22%5B%5C%2223806000074760021%5C%22%5D%22%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%22-%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\":\"-\",\"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":"-","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":"-","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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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`":`"-`",`"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\":\"-\",\"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\":\"-\",\"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 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%22%5B%5C%222380600000612345%5C%22%5D%22%2C%22project_ids%22%3A%22%5B%5C%2223806000074760021%5C%22%5D%22%7D%2C%22unselected%22%3A%7B%22group_ids%22%3A%22%5B%5C%222380600000612345%5C%22%5D%22%2C%22project_ids%22%3A%22%5B%5C%2223806000074760021%5C%22%5D%22%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
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 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=1&view_type=1&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%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", "1");
params.put("view_type", "1");
params.put("sort", "alphabetical:asc");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"});
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', '1');
url.searchParams.append('view_type', '1');
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":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}');
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" => "1",
"view_type" => "1",
"sort" => "alphabetical:asc",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"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' => '1',
'view_type' => '1',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'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": "1",
"view_type": "1",
"sort": "alphabetical:asc",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"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, "1", 0);
char *enc_view_type = curl_easy_escape(curl, "1", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 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"] = "1";
query["view_type"] = "1";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
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, "1", 0);
char* enc_view_type = curl_easy_escape(curl, "1", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 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 "1" "UTF-8")
enc-view_type (java.net.URLEncoder/encode "1" "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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "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", "1")
q.Add("view_type", "1")
q.Add("sort", "alphabetical:asc")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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=1&view_type=1&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%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", "1");
uriBuilder.addParameter("view_type", "1");
uriBuilder.addParameter("sort", "alphabetical:asc");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
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': '1',
'view_type': '1',
'sort': 'alphabetical:asc',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'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 = "1"
view_type = "1"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}
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", "1")
urlBuilder.addQueryParameter("view_type", "1")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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 = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedView_type = [@"1" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" 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 "1" in
let enc_view_type = Uri.pct_encode "1" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" 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 = "1"
view_type = "1"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"-`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"-`",`"unit`":`"-`",`"prior`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
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 = "1",
view_type = "1",
sort = "alphabetical:asc",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
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: "1"),
URLQueryItem(name: "view_type", value: "1"),
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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"),
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
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
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":"-","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":"-","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":"-","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\":\"-\",\"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":"-","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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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%22-%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\":\"-\",\"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":"-","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":"-","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\":\"-\",\"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\":\"-\",\"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\":\"-\",\"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`":`"-`",`"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\":\"-\",\"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\":\"-\",\"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":"-","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":"-"}]'
--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":"-","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":"-"}]);
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":"-","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":"-"}]');
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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]",
"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":"-","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":"-"}]',
'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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]",
"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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]", 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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]";
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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]", 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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]" "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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]")
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%22-%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%3A%22-%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/clientuser");
uriBuilder.addParameter(""userdetails"", "[{\"email_id\":\"mark@zylker.com\",\"profile_id\":\"2223806000000022149\",\"role_id\":\"8000000000991\",\"rate\":\"55.00\",\"cost_rate_per_hour\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]");
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":"-","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":"-"}]',
'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":"-","revenue_budget":"14.00","cost_budget":"20.00","budget_threshold":"10.00","is_readonly":"-"}]
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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]")
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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]" 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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]" 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`":`"-`",`"revenue_budget`":`"14.00`",`"cost_budget`":`"20.00`",`"budget_threshold`":`"10.00`",`"is_readonly`":`"-`"}]"
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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]",
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\":\"-\",\"revenue_budget\":\"14.00\",\"cost_budget\":\"20.00\",\"budget_threshold\":\"10.00\",\"is_readonly\":\"-\"}]"),
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%28last_modified_time%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(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/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(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/users/email-templates")
params = {
"search_term" => "Monica",
"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 = [
'search_term' => 'Monica',
'page' => '1',
'per_page' => '10',
'sort_by' => 'ASC(last_modified_time)',
];
$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(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_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(last_modified_time)", 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(last_modified_time)";
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(last_modified_time)", 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(last_modified_time)" "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(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/users/email-templates?search_term=Monica&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/users/email-templates");
uriBuilder.addParameter("search_term", "Monica");
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/users/email-templates';
const params = new URLSearchParams({
'search_term': 'Monica',
'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));
search_term = "Monica"
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/users/email-templates".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("search_term", "Monica")
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 *encodedSearch_term = [@"Monica" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
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/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(last_modified_time)" 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(last_modified_time)"
}
$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(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/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(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
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 team management related operations within Zoho Projects. Use this API to manage teams, get team details, associate them with projects, and update team meta details.
Retrieve all teams in a specific portal. Use this API to access the list of teams and their details within a portal.
OAuth Scope:
ZohoProjects.teams.READ
Query Parameter
long
Enter the ID of the team to retrieve.
String
Enter a search term to filter teams by name.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the last modified time to retrieve teams modified after this time.
String
Enter the sort criteria for the results. Accepted values: ASC, DESC
created_time : String
Represents the time at which the team was created
email_verified : Boolean
Represents whether the team email address is verified or not
name : String
Name of the team
updated_by : Json Object
Represents the details of the user who has updated the team
id : String
Unique ID of the team
created_by : Json Object
Represents the details of the user who has created the team
lead : Json Object
Represents the details of the team lead
email : String
Email address of the team
per_page : String
Represents the number of records per page
has_next_page : String
Represents whether the next page is available or not
posible value
true:Next page is available
false:Next page isn't available
count : String
Represents the total number of teams
page : String
Represents the page number
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/teams?id=4000000062001&search_term=Dev&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z&sort_by=desc%28name%29' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams";
params = Map();
params.put("id", "4000000062001");
params.put("search_term", "Dev");
params.put("page", "1");
params.put("per_page", "10");
params.put("last_modified_time", "2023-11-30T05:59:21.188Z");
params.put("sort_by", "desc(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/teams');
url.searchParams.append('id', '4000000062001');
url.searchParams.append('search_term', 'Dev');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('last_modified_time', '2023-11-30T05:59:21.188Z');
url.searchParams.append('sort_by', 'desc(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/teams")
params = {
"id" => "4000000062001",
"search_term" => "Dev",
"page" => "1",
"per_page" => "10",
"last_modified_time" => "2023-11-30T05:59:21.188Z",
"sort_by" => "desc(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 = [
'id' => '4000000062001',
'search_term' => 'Dev',
'page' => '1',
'per_page' => '10',
'last_modified_time' => '2023-11-30T05:59:21.188Z',
'sort_by' => 'desc(name)',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/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/teams"
params = {
"id": "4000000062001",
"search_term": "Dev",
"page": "1",
"per_page": "10",
"last_modified_time": "2023-11-30T05:59:21.188Z",
"sort_by": "desc(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_id = curl_easy_escape(curl, "4000000062001", 0);
char *enc_search_term = curl_easy_escape(curl, "Dev", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
char *enc_sort_by = curl_easy_escape(curl, "desc(name)", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/teams?id=%s&search_term=%s&page=%s&per_page=%s&last_modified_time=%s&sort_by=%s", enc_id, enc_search_term, enc_page, enc_per_page, enc_last_modified_time, 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_id);
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
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["id"] = "4000000062001";
query["search_term"] = "Dev";
query["page"] = "1";
query["per_page"] = "10";
query["last_modified_time"] = "2023-11-30T05:59:21.188Z";
query["sort_by"] = "desc(name)";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/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_id = curl_easy_escape(curl, "4000000062001", 0);
char* enc_search_term = curl_easy_escape(curl, "Dev", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
char* enc_sort_by = curl_easy_escape(curl, "desc(name)", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams";
url += "?id=" + std::string(enc_id);
url += "&search_term=" + std::string(enc_search_term);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&last_modified_time=" + std::string(enc_last_modified_time);
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_id);
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-id (java.net.URLEncoder/encode "4000000062001" "UTF-8")
enc-search_term (java.net.URLEncoder/encode "Dev" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-last_modified_time (java.net.URLEncoder/encode "2023-11-30T05:59:21.188Z" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "desc(name)" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/teams" "?id=" enc-id "&search_term=" enc-search_term "&page=" enc-page "&per_page=" enc-per_page "&last_modified_time=" enc-last_modified_time "&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/teams", nil)
q := req.URL.Query()
q.Add("id", "4000000062001")
q.Add("search_term", "Dev")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("last_modified_time", "2023-11-30T05:59:21.188Z")
q.Add("sort_by", "desc(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/teams?id=4000000062001&search_term=Dev&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z&sort_by=desc%28name%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/teams");
uriBuilder.addParameter("id", "4000000062001");
uriBuilder.addParameter("search_term", "Dev");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("last_modified_time", "2023-11-30T05:59:21.188Z");
uriBuilder.addParameter("sort_by", "desc(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/teams';
const params = new URLSearchParams({
'id': '4000000062001',
'search_term': 'Dev',
'page': '1',
'per_page': '10',
'last_modified_time': '2023-11-30T05:59:21.188Z',
'sort_by': 'desc(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));
id = "4000000062001"
search_term = "Dev"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"
sort_by = "desc(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/teams".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("id", "4000000062001")
urlBuilder.addQueryParameter("search_term", "Dev")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("last_modified_time", "2023-11-30T05:59:21.188Z")
urlBuilder.addQueryParameter("sort_by", "desc(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 *encodedId = [@"4000000062001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_term = [@"Dev" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedLast_modified_time = [@"2023-11-30T05:59:21.188Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"desc(name)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/teams?id=%@&search_term=%@&page=%@&per_page=%@&last_modified_time=%@&sort_by=%@", encodedId, encodedSearch_term, encodedPage, encodedPer_page, encodedLast_modified_time, 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_id = Uri.pct_encode "4000000062001" in
let enc_search_term = Uri.pct_encode "Dev" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_last_modified_time = Uri.pct_encode "2023-11-30T05:59:21.188Z" in
let enc_sort_by = Uri.pct_encode "desc(name)" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/teams" ^ "?id=" ^ enc_id ^ "&search_term=" ^ enc_search_term ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&last_modified_time=" ^ enc_last_modified_time ^ "&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 = @{
id = "4000000062001"
search_term = "Dev"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"
sort_by = "desc(name)"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/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/teams"
params <- list(
id = "4000000062001",
search_term = "Dev",
page = "1",
per_page = "10",
last_modified_time = "2023-11-30T05:59:21.188Z",
sort_by = "desc(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/teams")!
components.queryItems = [
URLQueryItem(name: "id", value: "4000000062001"),
URLQueryItem(name: "search_term", value: "Dev"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "last_modified_time", value: "2023-11-30T05:59:21.188Z"),
URLQueryItem(name: "sort_by", value: "desc(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 all users across teams in a specific portal. Use this API to access the list of users associated with teams within a portal.
OAuth Scope:
ZohoProjects.teams.READ
Query Parameter
JSONArray
Enter the IDs of the teams to retrieve their associated users.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the last modified time to retrieve users modified after this time.
name : String
Name of the team
associated_teams : Json Array
Represents the team IDs to which the user is associated
per_page : String
Represents the number of records per page
has_next_page : String
Represents whether the next page is available or not
posible value
true:Next page is available
false:Next page isn't available
count : String
Represents the total number of teams
page : String
Represents the page number
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/teams/users?team_ids=%5B4000000062001%2C4000000015029%5D&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/users";
params = Map();
params.put("team_ids", "[4000000062001,4000000015029]");
params.put("page", "1");
params.put("per_page", "10");
params.put("last_modified_time", "2023-11-30T05:59:21.188Z");
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/teams/users');
url.searchParams.append('team_ids', '[4000000062001,4000000015029]');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('last_modified_time', '2023-11-30T05:59:21.188Z');
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/teams/users")
params = {
"team_ids" => "[4000000062001,4000000015029]",
"page" => "1",
"per_page" => "10",
"last_modified_time" => "2023-11-30T05:59:21.188Z"
}
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 = [
'team_ids' => '[4000000062001,4000000015029]',
'page' => '1',
'per_page' => '10',
'last_modified_time' => '2023-11-30T05:59:21.188Z',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/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/teams/users"
params = {
"team_ids": "[4000000062001,4000000015029]",
"page": "1",
"per_page": "10",
"last_modified_time": "2023-11-30T05:59:21.188Z"
}
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_team_ids = curl_easy_escape(curl, "[4000000062001,4000000015029]", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/users?team_ids=%s&page=%s&per_page=%s&last_modified_time=%s", enc_team_ids, enc_page, enc_per_page, enc_last_modified_time);
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_team_ids);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
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["team_ids"] = "[4000000062001,4000000015029]";
query["page"] = "1";
query["per_page"] = "10";
query["last_modified_time"] = "2023-11-30T05:59:21.188Z";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/teams/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_team_ids = curl_easy_escape(curl, "[4000000062001,4000000015029]", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/users";
url += "?team_ids=" + std::string(enc_team_ids);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&last_modified_time=" + std::string(enc_last_modified_time);
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_team_ids);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-team_ids (java.net.URLEncoder/encode "[4000000062001,4000000015029]" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-last_modified_time (java.net.URLEncoder/encode "2023-11-30T05:59:21.188Z" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/users" "?team_ids=" enc-team_ids "&page=" enc-page "&per_page=" enc-per_page "&last_modified_time=" enc-last_modified_time)]
(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/teams/users", nil)
q := req.URL.Query()
q.Add("team_ids", "[4000000062001,4000000015029]")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("last_modified_time", "2023-11-30T05:59:21.188Z")
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/teams/users?team_ids=%5B4000000062001%2C4000000015029%5D&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z 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/teams/users");
uriBuilder.addParameter("team_ids", "[4000000062001,4000000015029]");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("last_modified_time", "2023-11-30T05:59:21.188Z");
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/teams/users';
const params = new URLSearchParams({
'team_ids': '[4000000062001,4000000015029]',
'page': '1',
'per_page': '10',
'last_modified_time': '2023-11-30T05:59:21.188Z'
});
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));
team_ids = "[4000000062001,4000000015029]"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"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/teams/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("team_ids", "[4000000062001,4000000015029]")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("last_modified_time", "2023-11-30T05:59:21.188Z")
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 *encodedTeam_ids = [@"[4000000062001,4000000015029]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedLast_modified_time = [@"2023-11-30T05:59:21.188Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/teams/users?team_ids=%@&page=%@&per_page=%@&last_modified_time=%@", encodedTeam_ids, encodedPage, encodedPer_page, encodedLast_modified_time];
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_team_ids = Uri.pct_encode "[4000000062001,4000000015029]" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_last_modified_time = Uri.pct_encode "2023-11-30T05:59:21.188Z" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/teams/users" ^ "?team_ids=" ^ enc_team_ids ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&last_modified_time=" ^ enc_last_modified_time) 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 = @{
team_ids = "[4000000062001,4000000015029]"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/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/teams/users"
params <- list(
team_ids = "[4000000062001,4000000015029]",
page = "1",
per_page = "10",
last_modified_time = "2023-11-30T05:59:21.188Z"
)
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/teams/users")!
components.queryItems = [
URLQueryItem(name: "team_ids", value: "[4000000062001,4000000015029]"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "last_modified_time", value: "2023-11-30T05:59:21.188Z")
]
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 teams in a specific portal. Use this API to access the list of projects linked to teams within a portal.
OAuth Scope:
ZohoProjects.teams.READ
Query Parameter
JSONArray
Enter the IDs of the teams to retrieve their associated projects.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the last modified time to retrieve projects modified after this time.
per_page : String
Represents the number of records per page
has_next_page : String
Represents whether the next page is available or not
posible value
true:Next page is available
false:Next page isn't available
count : String
Represents the total number of teams
page : String
Represents the page number
name : String
Name of the team
id : String
Unique ID of the team
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/teams/projects?team_ids=%5B4000000062001%2C4000000015029%5D&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/projects";
params = Map();
params.put("team_ids", "[4000000062001,4000000015029]");
params.put("page", "1");
params.put("per_page", "10");
params.put("last_modified_time", "2023-11-30T05:59:21.188Z");
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/teams/projects');
url.searchParams.append('team_ids', '[4000000062001,4000000015029]');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('last_modified_time', '2023-11-30T05:59:21.188Z');
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/teams/projects")
params = {
"team_ids" => "[4000000062001,4000000015029]",
"page" => "1",
"per_page" => "10",
"last_modified_time" => "2023-11-30T05:59:21.188Z"
}
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 = [
'team_ids' => '[4000000062001,4000000015029]',
'page' => '1',
'per_page' => '10',
'last_modified_time' => '2023-11-30T05:59:21.188Z',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/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/teams/projects"
params = {
"team_ids": "[4000000062001,4000000015029]",
"page": "1",
"per_page": "10",
"last_modified_time": "2023-11-30T05:59:21.188Z"
}
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_team_ids = curl_easy_escape(curl, "[4000000062001,4000000015029]", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/projects?team_ids=%s&page=%s&per_page=%s&last_modified_time=%s", enc_team_ids, enc_page, enc_per_page, enc_last_modified_time);
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_team_ids);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
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["team_ids"] = "[4000000062001,4000000015029]";
query["page"] = "1";
query["per_page"] = "10";
query["last_modified_time"] = "2023-11-30T05:59:21.188Z";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/teams/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_team_ids = curl_easy_escape(curl, "[4000000062001,4000000015029]", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/projects";
url += "?team_ids=" + std::string(enc_team_ids);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&last_modified_time=" + std::string(enc_last_modified_time);
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_team_ids);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-team_ids (java.net.URLEncoder/encode "[4000000062001,4000000015029]" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-last_modified_time (java.net.URLEncoder/encode "2023-11-30T05:59:21.188Z" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/projects" "?team_ids=" enc-team_ids "&page=" enc-page "&per_page=" enc-per_page "&last_modified_time=" enc-last_modified_time)]
(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/teams/projects", nil)
q := req.URL.Query()
q.Add("team_ids", "[4000000062001,4000000015029]")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("last_modified_time", "2023-11-30T05:59:21.188Z")
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/teams/projects?team_ids=%5B4000000062001%2C4000000015029%5D&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z 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/teams/projects");
uriBuilder.addParameter("team_ids", "[4000000062001,4000000015029]");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("last_modified_time", "2023-11-30T05:59:21.188Z");
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/teams/projects';
const params = new URLSearchParams({
'team_ids': '[4000000062001,4000000015029]',
'page': '1',
'per_page': '10',
'last_modified_time': '2023-11-30T05:59:21.188Z'
});
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));
team_ids = "[4000000062001,4000000015029]"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"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/teams/projects".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("team_ids", "[4000000062001,4000000015029]")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("last_modified_time", "2023-11-30T05:59:21.188Z")
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 *encodedTeam_ids = [@"[4000000062001,4000000015029]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedLast_modified_time = [@"2023-11-30T05:59:21.188Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/teams/projects?team_ids=%@&page=%@&per_page=%@&last_modified_time=%@", encodedTeam_ids, encodedPage, encodedPer_page, encodedLast_modified_time];
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_team_ids = Uri.pct_encode "[4000000062001,4000000015029]" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_last_modified_time = Uri.pct_encode "2023-11-30T05:59:21.188Z" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/teams/projects" ^ "?team_ids=" ^ enc_team_ids ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&last_modified_time=" ^ enc_last_modified_time) 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 = @{
team_ids = "[4000000062001,4000000015029]"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/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/teams/projects"
params <- list(
team_ids = "[4000000062001,4000000015029]",
page = "1",
per_page = "10",
last_modified_time = "2023-11-30T05:59:21.188Z"
)
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/teams/projects")!
components.queryItems = [
URLQueryItem(name: "team_ids", value: "[4000000062001,4000000015029]"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "last_modified_time", value: "2023-11-30T05:59:21.188Z")
]
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 team in a specific portal. Use this API to set up a team and group users for collaborative work within a portal.
OAuth Scope:
ZohoProjects.teams.CREATE
Parameter
String
requiredmax length : 50
Enter the name of the team.
long
requiredEnter the ID of the team lead.
String
max length : 100Enter the email address of the team.
boolean
Specify whether to notify the team members upon creation. 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/teams' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams";
params = Map();
params.put("name", "Development Team");
params.put("project_ids", {"add":"[4000000005103, 4000000005133]"});
params.put("user_ids", {"add":"[4000000005103, 4000000005133]"});
params.put("lead", "4000000005103");
params.put("email", "devs-team@zylker.com");
params.put("notify", "false");
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/teams');
const payload = JSON.stringify({"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/teams")
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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}'
response = requests.post(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/teams");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/teams");
request.Content = new StringContent(
@"{""name"":""Development Team"",""project_ids"":{""add"":""[4000000005103, 4000000005133]""},""user_ids"":{""add"":""[4000000005103, 4000000005133]""},""lead"":""4000000005103"",""email"":""devs-team@zylker.com"",""notify"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/teams");
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\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/teams"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/teams", 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/teams HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/teams");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/teams';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}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/teams")
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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/teams"];
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\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/teams" 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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}|json} in
Lwt_main.run (
Client.post ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/teams" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/teams"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/teams")!
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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]"},"user_ids":{"add":"[4000000005103, 4000000005133]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Possible Errors
INVALID_PARAMETER_VALUE HTTP 400
FORBIDDEN HTTP 403
Modify the details of a specific team in a portal. Use this API to modify the name, members, or other details of an existing team.
OAuth Scope:
ZohoProjects.teams.UPDATE
Parameter
String
max length : 50Enter the updated name of the team.
JSONObject
Enter the project IDs to update the team's project associations.
long
Enter the ID of the team lead.
String
max length : 100Enter the email address of the team.
boolean
Specify whether to notify the team members about the 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]";
params = Map();
params.put("name", "Development Team");
params.put("project_ids", {"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"});
params.put("user_ids", {"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"});
params.put("lead", "4000000005103");
params.put("email", "devs-team@zylker.com");
params.put("notify", "false");
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/teams/[TEAMID]');
const payload = JSON.stringify({"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]")
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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}'
response = requests.patch(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]");
request.Content = new StringContent(
@"{""name"":""Development Team"",""project_ids"":{""add"":""[4000000005103, 4000000005133]"",""remove"":""[4000000014077, 4000000008020]""},""user_ids"":{""add"":""[4000000005103, 4000000005133]"",""remove"":""[4000000014077, 4000000008020]""},""lead"":""4000000005103"",""email"":""devs-team@zylker.com"",""notify"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]");
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\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]", 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/teams/[TEAMID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}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/teams/[TEAMID]")
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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]"];
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\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]" 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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}|json} in
Lwt_main.run (
Client.patch ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"name":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Development Team\",\"project_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"user_ids\":{\"add\":\"[4000000005103, 4000000005133]\",\"remove\":\"[4000000014077, 4000000008020]\"},\"lead\":\"4000000005103\",\"email\":\"devs-team@zylker.com\",\"notify\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]")!
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":"Development Team","project_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"user_ids":{"add":"[4000000005103, 4000000005133]","remove":"[4000000014077, 4000000008020]"},"lead":"4000000005103","email":"devs-team@zylker.com","notify":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Possible Errors
INVALID_PARAMETER_VALUE HTTP 400
Remove a specific team from a portal. Use this API to permanently remove a team and its associations within a portal.
OAuth Scope:
ZohoProjects.teams.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/teams/[TEAMID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]";
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/teams/[TEAMID]');
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/teams/[TEAMID]")
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/teams/[TEAMID]";
$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/teams/[TEAMID]"
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/teams/[TEAMID]");
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/teams/[TEAMID]");
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/teams/[TEAMID]");
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/teams/[TEAMID]"
{: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/teams/[TEAMID]", 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/teams/[TEAMID] 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/teams/[TEAMID]");
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/teams/[TEAMID]';
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/teams/[TEAMID]")
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/teams/[TEAMID]"];
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/teams/[TEAMID]" 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/teams/[TEAMID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/teams/[TEAMID]"
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/teams/[TEAMID]")!
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
Retrieve all teams associated with a specific project. Use this API to access the list of teams and their members within a project.
OAuth Scope:
ZohoProjects.teams.READ
Query Parameter
long
Enter the ID of the team to retrieve.
String
Enter a search term to filter teams by name.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the last modified time to retrieve teams modified after this time.
String
Enter the sort criteria for the results. Accepted values: ASC, DESC
created_time : String
Represents the time at which the team was created
email_verified : Boolean
Represents whether the team email address is verified or not
name : String
Name of the team
updated_by : Json Object
Represents the details of the user who has updated the team
id : String
Unique ID of the team
created_by : Json Object
Represents the details of the user who has created the team
lead : Json Object
Represents the details of the team lead
email : String
Email address of the team
per_page : String
Represents the number of records per page
has_next_page : String
Represents whether the next page is available or not
posible value
true:Next page is available
false:Next page isn't available
count : String
Represents the total number of teams
page : String
Represents the page number
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/teams?id=4000000062001&search_term=Dev&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z&sort_by=desc%28name%29' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/teams";
params = Map();
params.put("id", "4000000062001");
params.put("search_term", "Dev");
params.put("page", "1");
params.put("per_page", "10");
params.put("last_modified_time", "2023-11-30T05:59:21.188Z");
params.put("sort_by", "desc(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/projects/1752587000000097024/teams');
url.searchParams.append('id', '4000000062001');
url.searchParams.append('search_term', 'Dev');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('last_modified_time', '2023-11-30T05:59:21.188Z');
url.searchParams.append('sort_by', 'desc(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/projects/1752587000000097024/teams")
params = {
"id" => "4000000062001",
"search_term" => "Dev",
"page" => "1",
"per_page" => "10",
"last_modified_time" => "2023-11-30T05:59:21.188Z",
"sort_by" => "desc(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 = [
'id' => '4000000062001',
'search_term' => 'Dev',
'page' => '1',
'per_page' => '10',
'last_modified_time' => '2023-11-30T05:59:21.188Z',
'sort_by' => 'desc(name)',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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/projects/1752587000000097024/teams"
params = {
"id": "4000000062001",
"search_term": "Dev",
"page": "1",
"per_page": "10",
"last_modified_time": "2023-11-30T05:59:21.188Z",
"sort_by": "desc(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_id = curl_easy_escape(curl, "4000000062001", 0);
char *enc_search_term = curl_easy_escape(curl, "Dev", 0);
char *enc_page = curl_easy_escape(curl, "1", 0);
char *enc_per_page = curl_easy_escape(curl, "10", 0);
char *enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
char *enc_sort_by = curl_easy_escape(curl, "desc(name)", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/teams?id=%s&search_term=%s&page=%s&per_page=%s&last_modified_time=%s&sort_by=%s", enc_id, enc_search_term, enc_page, enc_per_page, enc_last_modified_time, 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_id);
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
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["id"] = "4000000062001";
query["search_term"] = "Dev";
query["page"] = "1";
query["per_page"] = "10";
query["last_modified_time"] = "2023-11-30T05:59:21.188Z";
query["sort_by"] = "desc(name)";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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_id = curl_easy_escape(curl, "4000000062001", 0);
char* enc_search_term = curl_easy_escape(curl, "Dev", 0);
char* enc_page = curl_easy_escape(curl, "1", 0);
char* enc_per_page = curl_easy_escape(curl, "10", 0);
char* enc_last_modified_time = curl_easy_escape(curl, "2023-11-30T05:59:21.188Z", 0);
char* enc_sort_by = curl_easy_escape(curl, "desc(name)", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/teams";
url += "?id=" + std::string(enc_id);
url += "&search_term=" + std::string(enc_search_term);
url += "&page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&last_modified_time=" + std::string(enc_last_modified_time);
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_id);
curl_free(enc_search_term);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_last_modified_time);
curl_free(enc_sort_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-id (java.net.URLEncoder/encode "4000000062001" "UTF-8")
enc-search_term (java.net.URLEncoder/encode "Dev" "UTF-8")
enc-page (java.net.URLEncoder/encode "1" "UTF-8")
enc-per_page (java.net.URLEncoder/encode "10" "UTF-8")
enc-last_modified_time (java.net.URLEncoder/encode "2023-11-30T05:59:21.188Z" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "desc(name)" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/teams" "?id=" enc-id "&search_term=" enc-search_term "&page=" enc-page "&per_page=" enc-per_page "&last_modified_time=" enc-last_modified_time "&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/teams", nil)
q := req.URL.Query()
q.Add("id", "4000000062001")
q.Add("search_term", "Dev")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("last_modified_time", "2023-11-30T05:59:21.188Z")
q.Add("sort_by", "desc(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/projects/1752587000000097024/teams?id=4000000062001&search_term=Dev&page=1&per_page=10&last_modified_time=2023-11-30T05%3A59%3A21.188Z&sort_by=desc%28name%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/teams");
uriBuilder.addParameter("id", "4000000062001");
uriBuilder.addParameter("search_term", "Dev");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("last_modified_time", "2023-11-30T05:59:21.188Z");
uriBuilder.addParameter("sort_by", "desc(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/projects/1752587000000097024/teams';
const params = new URLSearchParams({
'id': '4000000062001',
'search_term': 'Dev',
'page': '1',
'per_page': '10',
'last_modified_time': '2023-11-30T05:59:21.188Z',
'sort_by': 'desc(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));
id = "4000000062001"
search_term = "Dev"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"
sort_by = "desc(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/projects/1752587000000097024/teams".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("id", "4000000062001")
urlBuilder.addQueryParameter("search_term", "Dev")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("last_modified_time", "2023-11-30T05:59:21.188Z")
urlBuilder.addQueryParameter("sort_by", "desc(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 *encodedId = [@"4000000062001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_term = [@"Dev" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPage = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPer_page = [@"10" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedLast_modified_time = [@"2023-11-30T05:59:21.188Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"desc(name)" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/teams?id=%@&search_term=%@&page=%@&per_page=%@&last_modified_time=%@&sort_by=%@", encodedId, encodedSearch_term, encodedPage, encodedPer_page, encodedLast_modified_time, 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_id = Uri.pct_encode "4000000062001" in
let enc_search_term = Uri.pct_encode "Dev" in
let enc_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_last_modified_time = Uri.pct_encode "2023-11-30T05:59:21.188Z" in
let enc_sort_by = Uri.pct_encode "desc(name)" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/teams" ^ "?id=" ^ enc_id ^ "&search_term=" ^ enc_search_term ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&last_modified_time=" ^ enc_last_modified_time ^ "&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 = @{
id = "4000000062001"
search_term = "Dev"
page = "1"
per_page = "10"
last_modified_time = "2023-11-30T05:59:21.188Z"
sort_by = "desc(name)"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/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/projects/1752587000000097024/teams"
params <- list(
id = "4000000062001",
search_term = "Dev",
page = "1",
per_page = "10",
last_modified_time = "2023-11-30T05:59:21.188Z",
sort_by = "desc(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/projects/1752587000000097024/teams")!
components.queryItems = [
URLQueryItem(name: "id", value: "4000000062001"),
URLQueryItem(name: "search_term", value: "Dev"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "last_modified_time", value: "2023-11-30T05:59:21.188Z"),
URLQueryItem(name: "sort_by", value: "desc(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
Add an existing team to a specific project. Use this API to associate a portal team with a project to grant its members access.
OAuth Scope:
ZohoProjects.teams.CREATE
Parameter
JSONArray
Enter the IDs of the teams to add to the project.
boolean
Specify whether to notify the team members about being added to the project. Accepted values: true or false
created_time : String
Represents the time at which the team was created
email_verified : Boolean
Represents whether the team email address is verified or not
name : String
Name of the team
updated_by : Json Object
Represents the details of the user who has updated the team
id : String
Unique ID of the team
created_by : Json Object
Represents the details of the user who has created the team
lead : Json Object
Represents the details of the team lead
email : String
Email address of the team
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/associate-teams' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"team_ids":"[4000000062001,4000000015029]","notify":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams";
params = Map();
params.put("team_ids", "[4000000062001,4000000015029]");
params.put("notify", "false");
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/associate-teams');
const payload = JSON.stringify({"team_ids":"[4000000062001,4000000015029]","notify":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams")
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 = '{"team_ids":"[4000000062001,4000000015029]","notify":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"team_ids":"[4000000062001,4000000015029]","notify":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"team_ids":"[4000000062001,4000000015029]","notify":"false"}'
response = requests.post(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"team_ids\":\"[4000000062001,4000000015029]\",\"notify\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams");
request.Content = new StringContent(
@"{""team_ids"":""[4000000062001,4000000015029]"",""notify"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams");
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, "{\"team_ids\":\"[4000000062001,4000000015029]\",\"notify\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"team_ids\":\"[4000000062001,4000000015029]\",\"notify\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"team_ids\":\"[4000000062001,4000000015029]\",\"notify\":\"false\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams", 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/associate-teams HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"team_ids":"[4000000062001,4000000015029]","notify":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"team_ids\":\"[4000000062001,4000000015029]\",\"notify\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"team_ids":"[4000000062001,4000000015029]","notify":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"team_ids":"[4000000062001,4000000015029]","notify":"false"}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/associate-teams")
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("""{"team_ids":"[4000000062001,4000000015029]","notify":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams"];
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 = [@"{\"team_ids\":\"[4000000062001,4000000015029]\",\"notify\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams" 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|{"team_ids":"[4000000062001,4000000015029]","notify":"false"}|json} in
Lwt_main.run (
Client.post ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"team_ids":"[4000000062001,4000000015029]","notify":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"team_ids\":\"[4000000062001,4000000015029]\",\"notify\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-teams")!
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 = """
{"team_ids":"[4000000062001,4000000015029]","notify":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Remove a specific team from a project. Use this API to dissociate a team from a project and revoke its members' project access.
OAuth Scope:
ZohoProjects.teams.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/dissociate-teams/[DISSOCIATE-TEAMID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/dissociate-teams/[DISSOCIATE-TEAMID]";
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/dissociate-teams/[DISSOCIATE-TEAMID]');
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/dissociate-teams/[DISSOCIATE-TEAMID]")
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/dissociate-teams/[DISSOCIATE-TEAMID]";
$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/dissociate-teams/[DISSOCIATE-TEAMID]"
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/dissociate-teams/[DISSOCIATE-TEAMID]");
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/dissociate-teams/[DISSOCIATE-TEAMID]");
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/dissociate-teams/[DISSOCIATE-TEAMID]");
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/dissociate-teams/[DISSOCIATE-TEAMID]"
{: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/dissociate-teams/[DISSOCIATE-TEAMID]", 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/dissociate-teams/[DISSOCIATE-TEAMID] 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/dissociate-teams/[DISSOCIATE-TEAMID]");
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/dissociate-teams/[DISSOCIATE-TEAMID]';
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/dissociate-teams/[DISSOCIATE-TEAMID]")
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/dissociate-teams/[DISSOCIATE-TEAMID]"];
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/dissociate-teams/[DISSOCIATE-TEAMID]" 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/dissociate-teams/[DISSOCIATE-TEAMID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/dissociate-teams/[DISSOCIATE-TEAMID]"
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/dissociate-teams/[DISSOCIATE-TEAMID]")!
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 profile-related operations. Use this API to manage portal profiles, update profile permissions, and set default profiles for your users.
Retrieve all profiles in a specific portal. Use this API to access the list of profiles and their configurations within a portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
Enter the sort criteria for the results. Accepted values: 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 profiles 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/profiles?sort_by=ASC%28last_modified_time%29&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&ids=4000000029001' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles";
params = Map();
params.put("sort_by", "ASC(last_modified_time)");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"});
params.put("ids", "4000000029001");
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/profiles');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}');
url.searchParams.append('ids', '4000000029001');
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/profiles")
params = {
"sort_by" => "ASC(last_modified_time)",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"ids" => "4000000029001"
}
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_by' => 'ASC(last_modified_time)',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'ids' => '4000000029001',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles" . "?" . 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/profiles"
params = {
"sort_by": "ASC(last_modified_time)",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"ids": "4000000029001"
}
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_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_ids = curl_easy_escape(curl, "4000000029001", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles?sort_by=%s&page=%s&per_page=%s&\"filter\"=%s&ids=%s", enc_sort_by, enc_page, enc_per_page, enc_"filter", enc_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_sort_by);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_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["sort_by"] = "ASC(last_modified_time)";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
query["ids"] = "4000000029001";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles") { 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_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_ids = curl_easy_escape(curl, "4000000029001", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles";
url += "?sort_by=" + std::string(enc_sort_by);
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);
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_by);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-ids (java.net.URLEncoder/encode "4000000029001" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles" "?sort_by=" enc-sort_by "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&ids=" enc-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/profiles", nil)
q := req.URL.Query()
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
q.Add("ids", "4000000029001")
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/profiles?sort_by=ASC%28last_modified_time%29&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&ids=4000000029001 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/profiles");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("ids", "4000000029001");
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/profiles';
const params = new URLSearchParams({
'sort_by': 'ASC(last_modified_time)',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'ids': '4000000029001'
});
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_by = "ASC(last_modified_time)"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}
ids = "4000000029001"
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/profiles".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("ids", "4000000029001")
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_by = [@"ASC(last_modified_time)" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIds = [@"4000000029001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles?sort_by=%@&page=%@&per_page=%@&"filter"=%@&ids=%@", encodedSort_by, encodedPage, encodedPer_page, encoded"filter", encodedIds];
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_by = Uri.pct_encode "ASC(last_modified_time)" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" in
let enc_ids = Uri.pct_encode "4000000029001" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles" ^ "?sort_by=" ^ enc_sort_by ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&ids=" ^ enc_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 = @{
sort_by = "ASC(last_modified_time)"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"-`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"-`",`"unit`":`"-`",`"prior`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
ids = "4000000029001"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles"
params <- list(
sort_by = "ASC(last_modified_time)",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
ids = "4000000029001"
)
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/profiles")!
components.queryItems = [
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "ids", value: "4000000029001")
]
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 profile in a portal. Use this API to access the permissions and configurations of a profile within a portal.
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/profiles/[PROFILEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]";
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/profiles/[PROFILEID]');
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/profiles/[PROFILEID]")
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/profiles/[PROFILEID]";
$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/profiles/[PROFILEID]"
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/profiles/[PROFILEID]");
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/profiles/[PROFILEID]");
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/profiles/[PROFILEID]");
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/profiles/[PROFILEID]"
{: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/profiles/[PROFILEID]", 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/profiles/[PROFILEID] 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/profiles/[PROFILEID]");
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/profiles/[PROFILEID]';
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/profiles/[PROFILEID]")
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/profiles/[PROFILEID]"];
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/profiles/[PROFILEID]" 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/profiles/[PROFILEID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]"
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/profiles/[PROFILEID]")!
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
Create a new profile in a specific portal. Use this API to define a custom set of permissions and configurations for users within a portal.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredEnter the name of the profile.
String
default : normalEnter the type of the profile. Accepted values: normal or client
boolean
Specify whether to set the profile as the default profile. Accepted values: true or false
long
Enter the ID of an existing profile to clone permissions and configurations 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/profiles' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles";
params = Map();
params.put("name", "Client (Primary & Cloned)");
params.put("type", "Client");
params.put("is_primary", false);
params.put("clone_from", "170876000004602149");
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/profiles');
const payload = JSON.stringify({"name":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"});
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/profiles")
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":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}',
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/profiles"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}'
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/profiles");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Client (Primary & Cloned)\",\"type\":\"Client\",\"is_primary\":false,\"clone_from\":\"170876000004602149\"}");
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/profiles");
request.Content = new StringContent(
@"{""name"":""Client (Primary & Cloned)"",""type"":""Client"",""is_primary"":false,""clone_from"":""170876000004602149""}",
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/profiles");
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\":\"Client (Primary & Cloned)\",\"type\":\"Client\",\"is_primary\":false,\"clone_from\":\"170876000004602149\"}");
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/profiles"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Client (Primary & Cloned)\",\"type\":\"Client\",\"is_primary\":false,\"clone_from\":\"170876000004602149\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Client (Primary & Cloned)\",\"type\":\"Client\",\"is_primary\":false,\"clone_from\":\"170876000004602149\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles", 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/profiles HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}
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/profiles");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Client (Primary & Cloned)\",\"type\":\"Client\",\"is_primary\":false,\"clone_from\":\"170876000004602149\"}";
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/profiles';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}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/profiles")
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":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles"];
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\":\"Client (Primary & Cloned)\",\"type\":\"Client\",\"is_primary\":false,\"clone_from\":\"170876000004602149\"}" 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/profiles" 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":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}|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":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Client (Primary & Cloned)\",\"type\":\"Client\",\"is_primary\":false,\"clone_from\":\"170876000004602149\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles")!
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":"Client (Primary & Cloned)","type":"Client","is_primary":false,"clone_from":"170876000004602149"}
""".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
Set a specific profile as the default profile in a portal. Use this API to define which profile is applied by default when adding new users to a portal.
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/profiles/[PROFILEID]/setprimary' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/setprimary";
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/profiles/[PROFILEID]/setprimary');
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/profiles/[PROFILEID]/setprimary")
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/profiles/[PROFILEID]/setprimary";
$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/profiles/[PROFILEID]/setprimary"
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/profiles/[PROFILEID]/setprimary");
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/profiles/[PROFILEID]/setprimary");
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/profiles/[PROFILEID]/setprimary");
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/profiles/[PROFILEID]/setprimary"
{: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/profiles/[PROFILEID]/setprimary", 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/profiles/[PROFILEID]/setprimary 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/profiles/[PROFILEID]/setprimary");
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/profiles/[PROFILEID]/setprimary';
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/profiles/[PROFILEID]/setprimary")
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/profiles/[PROFILEID]/setprimary"];
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/profiles/[PROFILEID]/setprimary" 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/profiles/[PROFILEID]/setprimary" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/setprimary"
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/profiles/[PROFILEID]/setprimary")!
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
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
INVALID_PARAMETER_VALUE HTTP 400
Modify the details of a specific profile in a portal. Use this API to modify the permissions and configurations of an existing profile within a portal.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredEnter the updated name of the profile.
boolean
Specify whether to set the profile as the default profile. 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Client (Primary & Cloned)","is_primary":false}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]";
params = Map();
params.put("name", "Client (Primary & Cloned)");
params.put("is_primary", false);
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/profiles/[PROFILEID]');
const payload = JSON.stringify({"name":"Client (Primary & Cloned)","is_primary":false});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]")
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":"Client (Primary & Cloned)","is_primary":false}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Client (Primary & Cloned)","is_primary":false}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Client (Primary & Cloned)","is_primary":false}'
response = requests.patch(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Client (Primary & Cloned)\",\"is_primary\":false}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]");
request.Content = new StringContent(
@"{""name"":""Client (Primary & Cloned)"",""is_primary"":false}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]");
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\":\"Client (Primary & Cloned)\",\"is_primary\":false}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Client (Primary & Cloned)\",\"is_primary\":false}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Client (Primary & Cloned)\",\"is_primary\":false}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]", 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/profiles/[PROFILEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Client (Primary & Cloned)","is_primary":false}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Client (Primary & Cloned)\",\"is_primary\":false}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Client (Primary & Cloned)","is_primary":false})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Client (Primary & Cloned)","is_primary":false}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/profiles/[PROFILEID]")
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":"Client (Primary & Cloned)","is_primary":false}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]"];
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\":\"Client (Primary & Cloned)\",\"is_primary\":false}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]" 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":"Client (Primary & Cloned)","is_primary":false}|json} in
Lwt_main.run (
Client.patch ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"name":"Client (Primary & Cloned)","is_primary":false}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Client (Primary & Cloned)\",\"is_primary\":false}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]")!
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":"Client (Primary & Cloned)","is_primary":false}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Remove a specific profile from a portal. Use this API to permanently remove a profile and its associated permissions from a portal.
OAuth Scope:
ZohoProjects.portals.DELETE
Parameter
long
Enter the ID of the alternate profile to migrate users to upon deletion. If not provided, users will be migrated to the default profile.
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/profiles/[PROFILEID]?alternate_profile=4000000002858' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]";
params = Map();
params.put("alternate_profile", "4000000002858");
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/profiles/[PROFILEID]');
url.searchParams.append('alternate_profile', '4000000002858');
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/profiles/[PROFILEID]")
params = {
"alternate_profile" => "4000000002858"
}
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 = [
'alternate_profile' => '4000000002858',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]" . "?" . 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/profiles/[PROFILEID]"
params = {
"alternate_profile": "4000000002858"
}
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_alternate_profile = curl_easy_escape(curl, "4000000002858", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]?alternate_profile=%s", enc_alternate_profile);
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_alternate_profile);
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["alternate_profile"] = "4000000002858";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]") { 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_alternate_profile = curl_easy_escape(curl, "4000000002858", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]";
url += "?alternate_profile=" + std::string(enc_alternate_profile);
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_alternate_profile);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-alternate_profile (java.net.URLEncoder/encode "4000000002858" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]" "?alternate_profile=" enc-alternate_profile)]
(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/profiles/[PROFILEID]", nil)
q := req.URL.Query()
q.Add("alternate_profile", "4000000002858")
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/profiles/[PROFILEID]?alternate_profile=4000000002858 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/profiles/[PROFILEID]");
uriBuilder.addParameter("alternate_profile", "4000000002858");
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/profiles/[PROFILEID]';
const params = new URLSearchParams({
'alternate_profile': '4000000002858'
});
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));
alternate_profile = "4000000002858"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/profiles/[PROFILEID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("alternate_profile", "4000000002858")
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 *encodedAlternate_profile = [@"4000000002858" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]?alternate_profile=%@", encodedAlternate_profile];
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_alternate_profile = Uri.pct_encode "4000000002858" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]" ^ "?alternate_profile=" ^ enc_alternate_profile) 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 = @{
alternate_profile = "4000000002858"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]"
params <- list(
alternate_profile = "4000000002858"
)
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/profiles/[PROFILEID]")!
components.queryItems = [
URLQueryItem(name: "alternate_profile", value: "4000000002858")
]
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 role-related operations within Zoho Projects. Use this API to create, update, delete, and assign default roles to users.
Retrieves all roles from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
Enter the sort order.Accepted values: ASC or DESC.
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the role 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/roles?sort_by=ASC%28last_modified_time%29&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&ids=4000000029001' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles";
params = Map();
params.put("sort_by", "ASC(last_modified_time)");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"});
params.put("ids", "4000000029001");
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/roles');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}');
url.searchParams.append('ids', '4000000029001');
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/roles")
params = {
"sort_by" => "ASC(last_modified_time)",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"ids" => "4000000029001"
}
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_by' => 'ASC(last_modified_time)',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'ids' => '4000000029001',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles" . "?" . 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/roles"
params = {
"sort_by": "ASC(last_modified_time)",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
"ids": "4000000029001"
}
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_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_ids = curl_easy_escape(curl, "4000000029001", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/roles?sort_by=%s&page=%s&per_page=%s&\"filter\"=%s&ids=%s", enc_sort_by, enc_page, enc_per_page, enc_"filter", enc_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_sort_by);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_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["sort_by"] = "ASC(last_modified_time)";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
query["ids"] = "4000000029001";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/roles") { 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_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_ids = curl_easy_escape(curl, "4000000029001", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles";
url += "?sort_by=" + std::string(enc_sort_by);
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);
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_by);
curl_free(enc_page);
curl_free(enc_per_page);
curl_free(enc_"filter");
curl_free(enc_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-ids (java.net.URLEncoder/encode "4000000029001" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/roles" "?sort_by=" enc-sort_by "&page=" enc-page "&per_page=" enc-per_page "&"filter"=" enc-"filter" "&ids=" enc-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/roles", nil)
q := req.URL.Query()
q.Add("sort_by", "ASC(last_modified_time)")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
q.Add("ids", "4000000029001")
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/roles?sort_by=ASC%28last_modified_time%29&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&ids=4000000029001 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/roles");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("ids", "4000000029001");
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/roles';
const params = new URLSearchParams({
'sort_by': 'ASC(last_modified_time)',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
'ids': '4000000029001'
});
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_by = "ASC(last_modified_time)"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}
ids = "4000000029001"
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/roles".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("ids", "4000000029001")
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_by = [@"ASC(last_modified_time)" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIds = [@"4000000029001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/roles?sort_by=%@&page=%@&per_page=%@&"filter"=%@&ids=%@", encodedSort_by, encodedPage, encodedPer_page, encoded"filter", encodedIds];
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_by = Uri.pct_encode "ASC(last_modified_time)" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" in
let enc_ids = Uri.pct_encode "4000000029001" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/roles" ^ "?sort_by=" ^ enc_sort_by ^ "&page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&"filter"=" ^ enc_"filter" ^ "&ids=" ^ enc_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 = @{
sort_by = "ASC(last_modified_time)"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"-`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"-`",`"unit`":`"-`",`"prior`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
ids = "4000000029001"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/roles"
params <- list(
sort_by = "ASC(last_modified_time)",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}",
ids = "4000000029001"
)
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/roles")!
components.queryItems = [
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "ids", value: "4000000029001")
]
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 role from the Zoho Projects portal.
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/roles/[ROLEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]";
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/roles/[ROLEID]');
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/roles/[ROLEID]")
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/roles/[ROLEID]";
$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/roles/[ROLEID]"
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/roles/[ROLEID]");
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/roles/[ROLEID]");
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/roles/[ROLEID]");
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/roles/[ROLEID]"
{: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/roles/[ROLEID]", 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/roles/[ROLEID] 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/roles/[ROLEID]");
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/roles/[ROLEID]';
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/roles/[ROLEID]")
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/roles/[ROLEID]"];
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/roles/[ROLEID]" 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/roles/[ROLEID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]"
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/roles/[ROLEID]")!
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 role in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredEnter the role name.
int
Enter the sequence number for the role.
boolean
Specify whether the role is default.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/roles' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Custom Developer","sequence":"5","is_primary":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles";
params = Map();
params.put("name", "Custom Developer");
params.put("sequence", "5");
params.put("is_primary", "false");
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/roles');
const payload = JSON.stringify({"name":"Custom Developer","sequence":"5","is_primary":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/roles")
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":"Custom Developer","sequence":"5","is_primary":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Custom Developer","sequence":"5","is_primary":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Custom Developer","sequence":"5","is_primary":"false"}'
response = requests.post(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/roles");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/roles");
request.Content = new StringContent(
@"{""name"":""Custom Developer"",""sequence"":""5"",""is_primary"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/roles");
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\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/roles"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/roles", 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/roles HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Custom Developer","sequence":"5","is_primary":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/roles");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/roles';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Custom Developer","sequence":"5","is_primary":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Custom Developer","sequence":"5","is_primary":"false"}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/roles")
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":"Custom Developer","sequence":"5","is_primary":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/roles"];
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\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/roles" 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":"Custom Developer","sequence":"5","is_primary":"false"}|json} in
Lwt_main.run (
Client.post ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"name":"Custom Developer","sequence":"5","is_primary":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/roles" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/roles"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/roles")!
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":"Custom Developer","sequence":"5","is_primary":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Modify the existing role in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredEnter the role name.
int
Enter the sequence number for the role.
boolean
Specify whether the role is default.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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Custom Developer","sequence":"5","is_primary":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]";
params = Map();
params.put("name", "Custom Developer");
params.put("sequence", "5");
params.put("is_primary", "false");
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/roles/[ROLEID]');
const payload = JSON.stringify({"name":"Custom Developer","sequence":"5","is_primary":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]")
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":"Custom Developer","sequence":"5","is_primary":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Custom Developer","sequence":"5","is_primary":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Custom Developer","sequence":"5","is_primary":"false"}'
response = requests.patch(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]");
request.Content = new StringContent(
@"{""name"":""Custom Developer"",""sequence"":""5"",""is_primary"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]");
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\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]", 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/roles/[ROLEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Custom Developer","sequence":"5","is_primary":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Custom Developer","sequence":"5","is_primary":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Custom Developer","sequence":"5","is_primary":"false"}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/roles/[ROLEID]")
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":"Custom Developer","sequence":"5","is_primary":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]"];
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\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]" 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":"Custom Developer","sequence":"5","is_primary":"false"}|json} in
Lwt_main.run (
Client.patch ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"name":"Custom Developer","sequence":"5","is_primary":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Custom Developer\",\"sequence\":\"5\",\"is_primary\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]")!
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":"Custom Developer","sequence":"5","is_primary":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Set the default role in the Zoho Projects portal.
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/roles/[ROLEID]/setprimary' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]/setprimary";
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/roles/[ROLEID]/setprimary');
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/roles/[ROLEID]/setprimary")
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/roles/[ROLEID]/setprimary";
$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/roles/[ROLEID]/setprimary"
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/roles/[ROLEID]/setprimary");
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/roles/[ROLEID]/setprimary");
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/roles/[ROLEID]/setprimary");
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/roles/[ROLEID]/setprimary"
{: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/roles/[ROLEID]/setprimary", 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/roles/[ROLEID]/setprimary 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/roles/[ROLEID]/setprimary");
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/roles/[ROLEID]/setprimary';
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/roles/[ROLEID]/setprimary")
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/roles/[ROLEID]/setprimary"];
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/roles/[ROLEID]/setprimary" 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/roles/[ROLEID]/setprimary" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]/setprimary"
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/roles/[ROLEID]/setprimary")!
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 role from a Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.DELETE
Parameter
long
Enter the ID of the alternate role.If provided, users with the role being deleted will be migrated to this alternate role.If left blank, users will be migrated to the default role.
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/roles/[ROLEID]?alternate_role=4000000002417' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]";
params = Map();
params.put("alternate_role", "4000000002417");
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/roles/[ROLEID]');
url.searchParams.append('alternate_role', '4000000002417');
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/roles/[ROLEID]")
params = {
"alternate_role" => "4000000002417"
}
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 = [
'alternate_role' => '4000000002417',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]" . "?" . 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/roles/[ROLEID]"
params = {
"alternate_role": "4000000002417"
}
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_alternate_role = curl_easy_escape(curl, "4000000002417", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]?alternate_role=%s", enc_alternate_role);
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_alternate_role);
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["alternate_role"] = "4000000002417";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]") { 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_alternate_role = curl_easy_escape(curl, "4000000002417", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]";
url += "?alternate_role=" + std::string(enc_alternate_role);
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_alternate_role);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-alternate_role (java.net.URLEncoder/encode "4000000002417" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]" "?alternate_role=" enc-alternate_role)]
(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/roles/[ROLEID]", nil)
q := req.URL.Query()
q.Add("alternate_role", "4000000002417")
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/roles/[ROLEID]?alternate_role=4000000002417 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/roles/[ROLEID]");
uriBuilder.addParameter("alternate_role", "4000000002417");
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/roles/[ROLEID]';
const params = new URLSearchParams({
'alternate_role': '4000000002417'
});
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));
alternate_role = "4000000002417"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/roles/[ROLEID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("alternate_role", "4000000002417")
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 *encodedAlternate_role = [@"4000000002417" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]?alternate_role=%@", encodedAlternate_role];
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_alternate_role = Uri.pct_encode "4000000002417" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]" ^ "?alternate_role=" ^ enc_alternate_role) 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 = @{
alternate_role = "4000000002417"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/roles/[ROLEID]"
params <- list(
alternate_role = "4000000002417"
)
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/roles/[ROLEID]")!
components.queryItems = [
URLQueryItem(name: "alternate_role", value: "4000000002417")
]
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 all operations related to permissions and access management within Zoho Projects. Use this API to retrieve permission details, set, or revoke permissions of users and profiles.
Retrieve module permission details of a profile.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
Request Example
Sample Response
Retrieve module permission details of multiple profiles.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
requiredEnter the profile 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions?profile_ids=170876000004602137' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions";
params = Map();
params.put("profile_ids", "170876000004602137");
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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions');
url.searchParams.append('profile_ids', '170876000004602137');
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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions")
params = {
"profile_ids" => "170876000004602137"
}
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 = [
'profile_ids' => '170876000004602137',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions" . "?" . 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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions"
params = {
"profile_ids": "170876000004602137"
}
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_profile_ids = curl_easy_escape(curl, "170876000004602137", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions?profile_ids=%s", enc_profile_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_profile_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["profile_ids"] = "170876000004602137";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions") { 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_profile_ids = curl_easy_escape(curl, "170876000004602137", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions";
url += "?profile_ids=" + std::string(enc_profile_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_profile_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-profile_ids (java.net.URLEncoder/encode "170876000004602137" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions" "?profile_ids=" enc-profile_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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions", nil)
q := req.URL.Query()
q.Add("profile_ids", "170876000004602137")
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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions?profile_ids=170876000004602137 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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions");
uriBuilder.addParameter("profile_ids", "170876000004602137");
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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions';
const params = new URLSearchParams({
'profile_ids': '170876000004602137'
});
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));
profile_ids = "170876000004602137"
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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("profile_ids", "170876000004602137")
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 *encodedProfile_ids = [@"170876000004602137" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions?profile_ids=%@", encodedProfile_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_profile_ids = Uri.pct_encode "170876000004602137" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions" ^ "?profile_ids=" ^ enc_profile_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 = @{
profile_ids = "170876000004602137"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions"
params <- list(
profile_ids = "170876000004602137"
)
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/profiles/[ records | others | portal | settings | integrations | custom | any ]/permissions")!
components.queryItems = [
URLQueryItem(name: "profile_ids", value: "170876000004602137")
]
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 field permission details of a profile.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
requiredEnter the module 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions?modules=tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions";
params = Map();
params.put("modules", "tasks");
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/profiles/[PROFILEID]/fields/permissions');
url.searchParams.append('modules', 'tasks');
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/profiles/[PROFILEID]/fields/permissions")
params = {
"modules" => "tasks"
}
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 = [
'modules' => 'tasks',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions" . "?" . 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/profiles/[PROFILEID]/fields/permissions"
params = {
"modules": "tasks"
}
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_modules = curl_easy_escape(curl, "tasks", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions?modules=%s", enc_modules);
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_modules);
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["modules"] = "tasks";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions") { 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_modules = curl_easy_escape(curl, "tasks", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions";
url += "?modules=" + std::string(enc_modules);
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_modules);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-modules (java.net.URLEncoder/encode "tasks" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions" "?modules=" enc-modules)]
(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/profiles/[PROFILEID]/fields/permissions", nil)
q := req.URL.Query()
q.Add("modules", "tasks")
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/profiles/[PROFILEID]/fields/permissions?modules=tasks 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/profiles/[PROFILEID]/fields/permissions");
uriBuilder.addParameter("modules", "tasks");
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/profiles/[PROFILEID]/fields/permissions';
const params = new URLSearchParams({
'modules': 'tasks'
});
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));
modules = "tasks"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/profiles/[PROFILEID]/fields/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("modules", "tasks")
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 *encodedModules = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions?modules=%@", encodedModules];
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_modules = Uri.pct_encode "tasks" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions" ^ "?modules=" ^ enc_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"
}
$params = @{
modules = "tasks"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions"
params <- list(
modules = "tasks"
)
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/profiles/[PROFILEID]/fields/permissions")!
components.queryItems = [
URLQueryItem(name: "modules", value: "tasks")
]
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 field permission details of multiple profiles.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
requiredEnter the profile IDs.
String
requiredEnter the module 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions?profile_ids=170876000004602137&modules=tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions";
params = Map();
params.put("profile_ids", "170876000004602137");
params.put("modules", "tasks");
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/profiles/fields/permissions');
url.searchParams.append('profile_ids', '170876000004602137');
url.searchParams.append('modules', 'tasks');
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/profiles/fields/permissions")
params = {
"profile_ids" => "170876000004602137",
"modules" => "tasks"
}
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 = [
'profile_ids' => '170876000004602137',
'modules' => 'tasks',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions" . "?" . 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/profiles/fields/permissions"
params = {
"profile_ids": "170876000004602137",
"modules": "tasks"
}
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_profile_ids = curl_easy_escape(curl, "170876000004602137", 0);
char *enc_modules = curl_easy_escape(curl, "tasks", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions?profile_ids=%s&modules=%s", enc_profile_ids, enc_modules);
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_profile_ids);
curl_free(enc_modules);
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["profile_ids"] = "170876000004602137";
query["modules"] = "tasks";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions") { 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_profile_ids = curl_easy_escape(curl, "170876000004602137", 0);
char* enc_modules = curl_easy_escape(curl, "tasks", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions";
url += "?profile_ids=" + std::string(enc_profile_ids);
url += "&modules=" + std::string(enc_modules);
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_profile_ids);
curl_free(enc_modules);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-profile_ids (java.net.URLEncoder/encode "170876000004602137" "UTF-8")
enc-modules (java.net.URLEncoder/encode "tasks" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions" "?profile_ids=" enc-profile_ids "&modules=" enc-modules)]
(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/profiles/fields/permissions", nil)
q := req.URL.Query()
q.Add("profile_ids", "170876000004602137")
q.Add("modules", "tasks")
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/profiles/fields/permissions?profile_ids=170876000004602137&modules=tasks 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/profiles/fields/permissions");
uriBuilder.addParameter("profile_ids", "170876000004602137");
uriBuilder.addParameter("modules", "tasks");
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/profiles/fields/permissions';
const params = new URLSearchParams({
'profile_ids': '170876000004602137',
'modules': 'tasks'
});
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));
profile_ids = "170876000004602137"
modules = "tasks"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/profiles/fields/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("profile_ids", "170876000004602137")
urlBuilder.addQueryParameter("modules", "tasks")
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 *encodedProfile_ids = [@"170876000004602137" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedModules = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions?profile_ids=%@&modules=%@", encodedProfile_ids, encodedModules];
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_profile_ids = Uri.pct_encode "170876000004602137" in
let enc_modules = Uri.pct_encode "tasks" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions" ^ "?profile_ids=" ^ enc_profile_ids ^ "&modules=" ^ enc_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"
}
$params = @{
profile_ids = "170876000004602137"
modules = "tasks"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/fields/permissions"
params <- list(
profile_ids = "170876000004602137",
modules = "tasks"
)
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/profiles/fields/permissions")!
components.queryItems = [
URLQueryItem(name: "profile_ids", value: "170876000004602137"),
URLQueryItem(name: "modules", value: "tasks")
]
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
Grant module permission for a profile.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredEnter the module name.
JSONArray
requiredSpecify the permissions. E.g. view_related, create, edit_owned, delete_all.
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"task","actions":["create"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant";
params = Map();
params.put("module", "task");
params.put("actions", ["create"]);
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant');
const payload = JSON.stringify({"module":"task","actions":["create"]});
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant")
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":"task","actions":["create"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"module":"task","actions":["create"]}',
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"task","actions":["create"]}'
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"task\",\"actions\":[\"create\"]}");
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant");
request.Content = new StringContent(
@"{""module"":""task"",""actions"":[""create""]}",
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant");
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\":\"task\",\"actions\":[\"create\"]}");
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"task\",\"actions\":[\"create\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"task\",\"actions\":[\"create\"]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant", 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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"task","actions":["create"]}
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"task\",\"actions\":[\"create\"]}";
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"task","actions":["create"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"task","actions":["create"]}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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant")
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":"task","actions":["create"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant"];
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\":\"task\",\"actions\":[\"create\"]}" 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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant" 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":"task","actions":["create"]}|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":"task","actions":["create"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"task\",\"actions\":[\"create\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/grant")!
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":"task","actions":["create"]}
""".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
Grant module field permission for a profile.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredEnter the module name.
JSONArray
requiredSpecify the permissions. E.g. view_related, create, edit_owned, delete_all.
long
requiredEnter the field 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"task","actions":["create"],"field_id":"12456890009"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant";
params = Map();
params.put("module", "task");
params.put("actions", ["create"]);
params.put("field_id", "12456890009");
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/profiles/[PROFILEID]/fields/permissions/grant');
const payload = JSON.stringify({"module":"task","actions":["create"],"field_id":"12456890009"});
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/profiles/[PROFILEID]/fields/permissions/grant")
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":"task","actions":["create"],"field_id":"12456890009"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"module":"task","actions":["create"],"field_id":"12456890009"}',
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/profiles/[PROFILEID]/fields/permissions/grant"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"task","actions":["create"],"field_id":"12456890009"}'
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/profiles/[PROFILEID]/fields/permissions/grant");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}");
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/profiles/[PROFILEID]/fields/permissions/grant");
request.Content = new StringContent(
@"{""module"":""task"",""actions"":[""create""],""field_id"":""12456890009""}",
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/profiles/[PROFILEID]/fields/permissions/grant");
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\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}");
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/profiles/[PROFILEID]/fields/permissions/grant"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant", 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/profiles/[PROFILEID]/fields/permissions/grant HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"task","actions":["create"],"field_id":"12456890009"}
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/profiles/[PROFILEID]/fields/permissions/grant");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}";
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/profiles/[PROFILEID]/fields/permissions/grant';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"task","actions":["create"],"field_id":"12456890009"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"task","actions":["create"],"field_id":"12456890009"}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/profiles/[PROFILEID]/fields/permissions/grant")
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":"task","actions":["create"],"field_id":"12456890009"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant"];
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\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}" 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/profiles/[PROFILEID]/fields/permissions/grant" 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":"task","actions":["create"],"field_id":"12456890009"}|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":"task","actions":["create"],"field_id":"12456890009"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/grant")!
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":"task","actions":["create"],"field_id":"12456890009"}
""".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 module permissions for a profile.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredEnter the module name.
JSONArray
requiredSpecify the permissions. E.g. view_related, create, edit_owned, delete_all.
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"task","actions":["create"]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke";
params = Map();
params.put("module", "task");
params.put("actions", ["create"]);
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke');
const payload = JSON.stringify({"module":"task","actions":["create"]});
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke")
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":"task","actions":["create"]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"module":"task","actions":["create"]}',
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"task","actions":["create"]}'
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"task\",\"actions\":[\"create\"]}");
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke");
request.Content = new StringContent(
@"{""module"":""task"",""actions"":[""create""]}",
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke");
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\":\"task\",\"actions\":[\"create\"]}");
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"task\",\"actions\":[\"create\"]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"task\",\"actions\":[\"create\"]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke", 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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"task","actions":["create"]}
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"task\",\"actions\":[\"create\"]}";
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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"task","actions":["create"]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"task","actions":["create"]}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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke")
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":"task","actions":["create"]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke"];
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\":\"task\",\"actions\":[\"create\"]}" 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/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke" 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":"task","actions":["create"]}|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":"task","actions":["create"]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"task\",\"actions\":[\"create\"]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/[ records | others | portal | settings | integrations | custom | any ]/permissions/revoke")!
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":"task","actions":["create"]}
""".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 module field permission for a profile.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredEnter the module name.
JSONArray
requiredSpecify the permissions. E.g. view_related, create, edit_owned, delete_all.
long
requiredEnter the field 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"task","actions":["create"],"field_id":"12456890009"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke";
params = Map();
params.put("module", "task");
params.put("actions", ["create"]);
params.put("field_id", "12456890009");
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/profiles/[PROFILEID]/fields/permissions/revoke');
const payload = JSON.stringify({"module":"task","actions":["create"],"field_id":"12456890009"});
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/profiles/[PROFILEID]/fields/permissions/revoke")
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":"task","actions":["create"],"field_id":"12456890009"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"module":"task","actions":["create"],"field_id":"12456890009"}',
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/profiles/[PROFILEID]/fields/permissions/revoke"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"task","actions":["create"],"field_id":"12456890009"}'
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/profiles/[PROFILEID]/fields/permissions/revoke");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}");
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/profiles/[PROFILEID]/fields/permissions/revoke");
request.Content = new StringContent(
@"{""module"":""task"",""actions"":[""create""],""field_id"":""12456890009""}",
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/profiles/[PROFILEID]/fields/permissions/revoke");
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\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}");
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/profiles/[PROFILEID]/fields/permissions/revoke"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke", 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/profiles/[PROFILEID]/fields/permissions/revoke HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"task","actions":["create"],"field_id":"12456890009"}
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/profiles/[PROFILEID]/fields/permissions/revoke");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}";
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/profiles/[PROFILEID]/fields/permissions/revoke';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"task","actions":["create"],"field_id":"12456890009"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"task","actions":["create"],"field_id":"12456890009"}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/profiles/[PROFILEID]/fields/permissions/revoke")
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":"task","actions":["create"],"field_id":"12456890009"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke"];
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\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}" 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/profiles/[PROFILEID]/fields/permissions/revoke" 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":"task","actions":["create"],"field_id":"12456890009"}|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":"task","actions":["create"],"field_id":"12456890009"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/profiles/[PROFILEID]/fields/permissions/revoke")!
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":"task","actions":["create"],"field_id":"12456890009"}
""".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 all operations related to user's permissions and access management within Zoho Projects.
Retrieve project permission details of the user.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
Request Example
Sample Response
Retrieve module permission details of a user in a project.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
Enter the user 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions?user_ids=1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions";
params = Map();
params.put("user_ids", "1752587000000097260");
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/[ records | others | portal | settings | integrations | custom | any ]/permissions');
url.searchParams.append('user_ids', '1752587000000097260');
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/[ records | others | portal | settings | integrations | custom | any ]/permissions")
params = {
"user_ids" => "1752587000000097260"
}
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 = [
'user_ids' => '1752587000000097260',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions" . "?" . 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/[ records | others | portal | settings | integrations | custom | any ]/permissions"
params = {
"user_ids": "1752587000000097260"
}
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_user_ids = curl_easy_escape(curl, "1752587000000097260", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions?user_ids=%s", enc_user_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_user_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["user_ids"] = "1752587000000097260";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions") { 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_user_ids = curl_easy_escape(curl, "1752587000000097260", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions";
url += "?user_ids=" + std::string(enc_user_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_user_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-user_ids (java.net.URLEncoder/encode "1752587000000097260" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions" "?user_ids=" enc-user_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/[ records | others | portal | settings | integrations | custom | any ]/permissions", nil)
q := req.URL.Query()
q.Add("user_ids", "1752587000000097260")
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/[ records | others | portal | settings | integrations | custom | any ]/permissions?user_ids=1752587000000097260 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/[ records | others | portal | settings | integrations | custom | any ]/permissions");
uriBuilder.addParameter("user_ids", "1752587000000097260");
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/[ records | others | portal | settings | integrations | custom | any ]/permissions';
const params = new URLSearchParams({
'user_ids': '1752587000000097260'
});
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));
user_ids = "1752587000000097260"
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/[ records | others | portal | settings | integrations | custom | any ]/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("user_ids", "1752587000000097260")
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 *encodedUser_ids = [@"1752587000000097260" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions?user_ids=%@", encodedUser_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_user_ids = Uri.pct_encode "1752587000000097260" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions" ^ "?user_ids=" ^ enc_user_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 = @{
user_ids = "1752587000000097260"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ records | others | portal | settings | integrations | custom | any ]/permissions" + "?" + $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/[ records | others | portal | settings | integrations | custom | any ]/permissions"
params <- list(
user_ids = "1752587000000097260"
)
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/[ records | others | portal | settings | integrations | custom | any ]/permissions")!
components.queryItems = [
URLQueryItem(name: "user_ids", value: "1752587000000097260")
]
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 field permission details of a user in a project.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
requiredEnter the module 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions?modules=tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions";
params = Map();
params.put("modules", "tasks");
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/[ZPUID | EMAILID]/fields/permissions');
url.searchParams.append('modules', 'tasks');
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]/fields/permissions")
params = {
"modules" => "tasks"
}
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 = [
'modules' => 'tasks',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions" . "?" . 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/[ZPUID | EMAILID]/fields/permissions"
params = {
"modules": "tasks"
}
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_modules = curl_easy_escape(curl, "tasks", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions?modules=%s", enc_modules);
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_modules);
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["modules"] = "tasks";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions") { 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_modules = curl_easy_escape(curl, "tasks", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions";
url += "?modules=" + std::string(enc_modules);
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_modules);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-modules (java.net.URLEncoder/encode "tasks" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions" "?modules=" enc-modules)]
(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/[ZPUID | EMAILID]/fields/permissions", nil)
q := req.URL.Query()
q.Add("modules", "tasks")
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/[ZPUID | EMAILID]/fields/permissions?modules=tasks 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]/fields/permissions");
uriBuilder.addParameter("modules", "tasks");
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]/fields/permissions';
const params = new URLSearchParams({
'modules': 'tasks'
});
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));
modules = "tasks"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]/fields/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("modules", "tasks")
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 *encodedModules = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions?modules=%@", encodedModules];
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_modules = Uri.pct_encode "tasks" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/fields/permissions" ^ "?modules=" ^ enc_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"
}
$params = @{
modules = "tasks"
}
$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]/fields/permissions" + "?" + $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/[ZPUID | EMAILID]/fields/permissions"
params <- list(
modules = "tasks"
)
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/[ZPUID | EMAILID]/fields/permissions")!
components.queryItems = [
URLQueryItem(name: "modules", value: "tasks")
]
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 module field permissions of multiple users in a project.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
requiredEnter the user IDs.
String
requiredEnter the module 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions?user_ids=1752587000000097260&modules=tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions";
params = Map();
params.put("user_ids", "1752587000000097260");
params.put("modules", "tasks");
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/fields/permissions');
url.searchParams.append('user_ids', '1752587000000097260');
url.searchParams.append('modules', 'tasks');
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/fields/permissions")
params = {
"user_ids" => "1752587000000097260",
"modules" => "tasks"
}
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 = [
'user_ids' => '1752587000000097260',
'modules' => 'tasks',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions" . "?" . 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/fields/permissions"
params = {
"user_ids": "1752587000000097260",
"modules": "tasks"
}
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_user_ids = curl_easy_escape(curl, "1752587000000097260", 0);
char *enc_modules = curl_easy_escape(curl, "tasks", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions?user_ids=%s&modules=%s", enc_user_ids, enc_modules);
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_user_ids);
curl_free(enc_modules);
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["user_ids"] = "1752587000000097260";
query["modules"] = "tasks";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions") { 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_user_ids = curl_easy_escape(curl, "1752587000000097260", 0);
char* enc_modules = curl_easy_escape(curl, "tasks", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions";
url += "?user_ids=" + std::string(enc_user_ids);
url += "&modules=" + std::string(enc_modules);
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_user_ids);
curl_free(enc_modules);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-user_ids (java.net.URLEncoder/encode "1752587000000097260" "UTF-8")
enc-modules (java.net.URLEncoder/encode "tasks" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions" "?user_ids=" enc-user_ids "&modules=" enc-modules)]
(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/fields/permissions", nil)
q := req.URL.Query()
q.Add("user_ids", "1752587000000097260")
q.Add("modules", "tasks")
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/fields/permissions?user_ids=1752587000000097260&modules=tasks 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/fields/permissions");
uriBuilder.addParameter("user_ids", "1752587000000097260");
uriBuilder.addParameter("modules", "tasks");
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/fields/permissions';
const params = new URLSearchParams({
'user_ids': '1752587000000097260',
'modules': 'tasks'
});
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));
user_ids = "1752587000000097260"
modules = "tasks"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/fields/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("user_ids", "1752587000000097260")
urlBuilder.addQueryParameter("modules", "tasks")
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 *encodedUser_ids = [@"1752587000000097260" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedModules = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions?user_ids=%@&modules=%@", encodedUser_ids, encodedModules];
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_user_ids = Uri.pct_encode "1752587000000097260" in
let enc_modules = Uri.pct_encode "tasks" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions" ^ "?user_ids=" ^ enc_user_ids ^ "&modules=" ^ enc_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"
}
$params = @{
user_ids = "1752587000000097260"
modules = "tasks"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/fields/permissions" + "?" + $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/fields/permissions"
params <- list(
user_ids = "1752587000000097260",
modules = "tasks"
)
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/fields/permissions")!
components.queryItems = [
URLQueryItem(name: "user_ids", value: "1752587000000097260"),
URLQueryItem(name: "modules", value: "tasks")
]
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 project permissions for a user.
OAuth Scope:
ZohoProjects.portals.READ
Parameter
String
requiredEnter the module name.
JSONArray
requiredSpecify the permissions. E.g. view_related, create, edit_owned, delete_all.
long
Enter the field ID.
String
requiredSpecify the category. Accepted values: records, others, portal, settings, integrations, fields, or custom.
String
requiredEnter the operation name. E.g. grant, revoke.
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/users/[ZPUID | EMAILID]/permissions' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/permissions";
params = Map();
params.put("module", "task");
params.put("actions", ["create"]);
params.put("field_id", "12456890009");
params.put("type", "records");
params.put("operation", "revoke");
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/users/[ZPUID | EMAILID]/permissions');
const payload = JSON.stringify({"module":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"});
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/users/[ZPUID | EMAILID]/permissions")
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":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/permissions";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"module":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}',
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/[ZPUID | EMAILID]/permissions"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}'
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/users/[ZPUID | EMAILID]/permissions");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\",\"type\":\"records\",\"operation\":\"revoke\"}");
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/users/[ZPUID | EMAILID]/permissions");
request.Content = new StringContent(
@"{""module"":""task"",""actions"":[""create""],""field_id"":""12456890009"",""type"":""records"",""operation"":""revoke""}",
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/[ZPUID | EMAILID]/permissions");
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\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\",\"type\":\"records\",\"operation\":\"revoke\"}");
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/users/[ZPUID | EMAILID]/permissions"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\",\"type\":\"records\",\"operation\":\"revoke\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\",\"type\":\"records\",\"operation\":\"revoke\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/permissions", 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/users/[ZPUID | EMAILID]/permissions HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}
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]/permissions");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\",\"type\":\"records\",\"operation\":\"revoke\"}";
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/[ZPUID | EMAILID]/permissions';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}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]/permissions")
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":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}""") }
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]/permissions"];
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\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\",\"type\":\"records\",\"operation\":\"revoke\"}" 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/[ZPUID | EMAILID]/permissions" 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":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}|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":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/permissions" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/permissions"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"task\",\"actions\":[\"create\"],\"field_id\":\"12456890009\",\"type\":\"records\",\"operation\":\"revoke\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/[ZPUID | EMAILID]/permissions")!
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":"task","actions":["create"],"field_id":"12456890009","type":"records","operation":"revoke"}
""".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 all operations related to current user's permissions and access management in Zoho Projects.
Retrieve permission details of the current user.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
Request Example
Sample Response
Retrieve field permissions of the current user.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
requiredEnter the module 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions?modules=tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions";
params = Map();
params.put("modules", "tasks");
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/me/fields/permissions');
url.searchParams.append('modules', 'tasks');
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/me/fields/permissions")
params = {
"modules" => "tasks"
}
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 = [
'modules' => 'tasks',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions" . "?" . 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/me/fields/permissions"
params = {
"modules": "tasks"
}
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_modules = curl_easy_escape(curl, "tasks", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions?modules=%s", enc_modules);
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_modules);
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["modules"] = "tasks";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions") { 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_modules = curl_easy_escape(curl, "tasks", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions";
url += "?modules=" + std::string(enc_modules);
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_modules);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-modules (java.net.URLEncoder/encode "tasks" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions" "?modules=" enc-modules)]
(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/me/fields/permissions", nil)
q := req.URL.Query()
q.Add("modules", "tasks")
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/me/fields/permissions?modules=tasks 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/me/fields/permissions");
uriBuilder.addParameter("modules", "tasks");
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/me/fields/permissions';
const params = new URLSearchParams({
'modules': 'tasks'
});
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));
modules = "tasks"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/me/fields/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("modules", "tasks")
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 *encodedModules = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions?modules=%@", encodedModules];
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_modules = Uri.pct_encode "tasks" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions" ^ "?modules=" ^ enc_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"
}
$params = @{
modules = "tasks"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/users/me/fields/permissions" + "?" + $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/me/fields/permissions"
params <- list(
modules = "tasks"
)
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/me/fields/permissions")!
components.queryItems = [
URLQueryItem(name: "modules", value: "tasks")
]
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 permission details of the current user.
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/1752587000000097024/users/me/[ records | others | portal | settings | integrations | custom | any ]/permissions' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/[ records | others | portal | settings | integrations | custom | any ]/permissions";
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions');
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions")
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions";
$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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions"
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions");
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions");
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions");
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions"
{: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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions", 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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions 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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions");
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions';
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions")
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions"];
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions" 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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/[ records | others | portal | settings | integrations | custom | any ]/permissions"
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/me/[ records | others | portal | settings | integrations | custom | any ]/permissions")!
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 field permission details of the current user in a project.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
requiredEnter the module 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions?modules=tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions";
params = Map();
params.put("modules", "tasks");
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/me/fields/permissions');
url.searchParams.append('modules', 'tasks');
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/me/fields/permissions")
params = {
"modules" => "tasks"
}
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 = [
'modules' => 'tasks',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions" . "?" . 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/me/fields/permissions"
params = {
"modules": "tasks"
}
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_modules = curl_easy_escape(curl, "tasks", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions?modules=%s", enc_modules);
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_modules);
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["modules"] = "tasks";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions") { 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_modules = curl_easy_escape(curl, "tasks", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions";
url += "?modules=" + std::string(enc_modules);
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_modules);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-modules (java.net.URLEncoder/encode "tasks" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions" "?modules=" enc-modules)]
(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/me/fields/permissions", nil)
q := req.URL.Query()
q.Add("modules", "tasks")
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/me/fields/permissions?modules=tasks 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/me/fields/permissions");
uriBuilder.addParameter("modules", "tasks");
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/me/fields/permissions';
const params = new URLSearchParams({
'modules': 'tasks'
});
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));
modules = "tasks"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/me/fields/permissions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("modules", "tasks")
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 *encodedModules = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions?modules=%@", encodedModules];
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_modules = Uri.pct_encode "tasks" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions" ^ "?modules=" ^ enc_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"
}
$params = @{
modules = "tasks"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/users/me/fields/permissions" + "?" + $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/me/fields/permissions"
params <- list(
modules = "tasks"
)
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/me/fields/permissions")!
components.queryItems = [
URLQueryItem(name: "modules", value: "tasks")
]
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 clients and customer related operations within Zoho Projects.. Use this API to manage client details, associate clients with projects, and update client information.
Retrieve customer details from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.READ
Query Parameter
String
Enter the customer IDs.
String
Enter the sort order.E.g. alphabetical:asc
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/clients?ids=4000000029001&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients";
params = Map();
params.put("ids", "4000000029001");
params.put("sort", "alphabetical:asc");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"});
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/clients');
url.searchParams.append('ids', '4000000029001');
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":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}');
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/clients")
params = {
"ids" => "4000000029001",
"sort" => "alphabetical:asc",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"
}
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 = [
'ids' => '4000000029001',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients" . "?" . 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/clients"
params = {
"ids": "4000000029001",
"sort": "alphabetical:asc",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"
}
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_ids = curl_easy_escape(curl, "4000000029001", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/clients?ids=%s&sort=%s&page=%s&per_page=%s&\"filter\"=%s", enc_ids, enc_sort, 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_ids);
curl_free(enc_sort);
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["ids"] = "4000000029001";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/clients") { 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_ids = curl_easy_escape(curl, "4000000029001", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients";
url += "?ids=" + std::string(enc_ids);
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");
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_ids);
curl_free(enc_sort);
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-ids (java.net.URLEncoder/encode "4000000029001" "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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/clients" "?ids=" enc-ids "&sort=" enc-sort "&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/clients", nil)
q := req.URL.Query()
q.Add("ids", "4000000029001")
q.Add("sort", "alphabetical:asc")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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/clients?ids=4000000029001&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%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/clients");
uriBuilder.addParameter("ids", "4000000029001");
uriBuilder.addParameter("sort", "alphabetical:asc");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
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/clients';
const params = new URLSearchParams({
'ids': '4000000029001',
'sort': 'alphabetical:asc',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}'
});
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));
ids = "4000000029001"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}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/clients".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("ids", "4000000029001")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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 *encodedIds = [@"4000000029001" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/clients?ids=%@&sort=%@&page=%@&per_page=%@&"filter"=%@", encodedIds, encodedSort, 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_ids = Uri.pct_encode "4000000029001" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/clients" ^ "?ids=" ^ enc_ids ^ "&sort=" ^ enc_sort ^ "&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 = @{
ids = "4000000029001"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"-`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"-`",`"unit`":`"-`",`"prior`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/clients"
params <- list(
ids = "4000000029001",
sort = "alphabetical:asc",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"
)
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/clients")!
components.queryItems = [
URLQueryItem(name: "ids", value: "4000000029001"),
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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
]
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 Customers and client users from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.READ
Query Parameter
int
Enter the view type. Accepted values: 0 (Inactive), 1 (Active).
String
Enter the sort order. E.g. alphabetical:asc
int
Enter the page number.
int
Enter the number of entries to display 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/clients/users?view_type=1&sort=alphabetical%3Aasc&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/users";
params = Map();
params.put("view_type", 1);
params.put("sort", "alphabetical:asc");
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/clients/users');
url.searchParams.append('view_type', '1');
url.searchParams.append('sort', 'alphabetical:asc');
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/clients/users")
params = {
"view_type" => "1",
"sort" => "alphabetical:asc",
"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 = [
'view_type' => '1',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/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/clients/users"
params = {
"view_type": "1",
"sort": "alphabetical:asc",
"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_view_type = curl_easy_escape(curl, "1", 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 url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/users?view_type=%s&sort=%s&page=%s&per_page=%s", enc_view_type, enc_sort, 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_view_type);
curl_free(enc_sort);
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["view_type"] = "1";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/clients/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_view_type = curl_easy_escape(curl, "1", 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);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/users";
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);
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_type);
curl_free(enc_sort);
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-view_type (java.net.URLEncoder/encode "1" "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")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/users" "?view_type=" enc-view_type "&sort=" enc-sort "&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/clients/users", nil)
q := req.URL.Query()
q.Add("view_type", "1")
q.Add("sort", "alphabetical:asc")
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/clients/users?view_type=1&sort=alphabetical%3Aasc&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/clients/users");
uriBuilder.addParameter("view_type", "1");
uriBuilder.addParameter("sort", "alphabetical:asc");
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/clients/users';
const params = new URLSearchParams({
'view_type': '1',
'sort': 'alphabetical:asc',
'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));
view_type = 1
sort = "alphabetical:asc"
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/clients/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("view_type", "1")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
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 *encodedView_type = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort = [@"alphabetical:asc" 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/clients/users?view_type=%@&sort=%@&page=%@&per_page=%@", encodedView_type, encodedSort, 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_view_type = Uri.pct_encode "1" 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 uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/clients/users" ^ "?view_type=" ^ enc_view_type ^ "&sort=" ^ enc_sort ^ "&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 = @{
view_type = "1"
sort = "alphabetical:asc"
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/clients/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/clients/users"
params <- list(
view_type = "1",
sort = "alphabetical:asc",
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/clients/users")!
components.queryItems = [
URLQueryItem(name: "view_type", value: "1"),
URLQueryItem(name: "sort", value: "alphabetical:asc"),
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 customer from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.READ
Query Parameter
String
Enter the project status. Accepted values : active,template,archived
String
Enter the search term.
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/clients/[CLIENTID]/projects?status=active&search_term=Zoho+Projects&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects";
params = Map();
params.put("status", "active");
params.put("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/clients/[CLIENTID]/projects');
url.searchParams.append('status', 'active');
url.searchParams.append('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/clients/[CLIENTID]/projects")
params = {
"status" => "active",
"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 = [
'status' => 'active',
'search_term' => 'Zoho Projects',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/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/clients/[CLIENTID]/projects"
params = {
"status": "active",
"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_status = curl_easy_escape(curl, "active", 0);
char *enc_search_term = curl_easy_escape(curl, "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/clients/[CLIENTID]/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"] = "Zoho Projects";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/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, "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/clients/[CLIENTID]/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 "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/clients/[CLIENTID]/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/clients/[CLIENTID]/projects", nil)
q := req.URL.Query()
q.Add("status", "active")
q.Add("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/clients/[CLIENTID]/projects?status=active&search_term=Zoho+Projects&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/clients/[CLIENTID]/projects");
uriBuilder.addParameter("status", "active");
uriBuilder.addParameter("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/clients/[CLIENTID]/projects';
const params = new URLSearchParams({
'status': 'active',
'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));
status = "active"
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/clients/[CLIENTID]/projects".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("status", "active")
urlBuilder.addQueryParameter("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 *encodedStatus = [@"active" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_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/clients/[CLIENTID]/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 "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/clients/[CLIENTID]/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 = "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/clients/[CLIENTID]/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/clients/[CLIENTID]/projects"
params <- list(
status = "active",
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/clients/[CLIENTID]/projects")!
components.queryItems = [
URLQueryItem(name: "status", value: "active"),
URLQueryItem(name: "search_term", value: "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
Add customers to the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.CREATE
Parameter
String
max length : 200Enter the customer name.
String
max length : 50Enter the web address of the customer.
String
max length : 100Enter the address.
String
max length : 100Enter the address.
String
max length : 50Enter the city name.
String
max length : 50Enter the state name.
String
max length : 50Enter the country name.
String
max length : 20Enter the zip code.
int
default : 1Enter the customer type. Accepted values: 1 (Business), 2 (Individual).
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/clients' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients";
params = Map();
params.put("name", "zas");
params.put("webaddress", "https://zas.com");
params.put("address_first", "chennai");
params.put("address_second", "che");
params.put("city", "chennai");
params.put("state", "-");
params.put("country", "-");
params.put("zipcode", "600002");
params.put("customer_type", "1");
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/clients');
const payload = JSON.stringify({"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"});
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/clients")
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}',
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/clients"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}'
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/clients");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\"}");
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/clients");
request.Content = new StringContent(
@"{""name"":""zas"",""webaddress"":""https://zas.com"",""address_first"":""chennai"",""address_second"":""che"",""city"":""chennai"",""state"":""-"",""country"":""-"",""zipcode"":""600002"",""customer_type"":""1""}",
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/clients");
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\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\"}");
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/clients"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/clients", 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/clients HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}
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/clients");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"zas\",\"webaddress\":\"https:\/\/zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\"}";
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/clients';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}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/clients")
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/clients"];
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\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\"}" 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/clients" 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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}|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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/clients" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/clients"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/clients")!
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1"}
""".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 customer details in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.UPDATE
Parameter
String
max length : 100Enter the customer name.
String
max length : 50Enter the web address.
String
max length : 100Enter address line 1.
String
max length : 100Enter address line 2.
String
max length : 50Enter the city.
String
Enter the state.
String
Enter the country.
String
max length : 20Enter the ZIP Code.
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/clients/[CLIENTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]";
params = Map();
params.put("name", "zas");
params.put("webaddress", "https://zas.com");
params.put("address_first", "chennai");
params.put("address_second", "che");
params.put("city", "chennai");
params.put("state", "-");
params.put("country", "-");
params.put("zipcode", "600002");
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/clients/[CLIENTID]');
const payload = JSON.stringify({"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"});
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/clients/[CLIENTID]")
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}',
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/clients/[CLIENTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}'
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/clients/[CLIENTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\"}");
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/clients/[CLIENTID]");
request.Content = new StringContent(
@"{""name"":""zas"",""webaddress"":""https://zas.com"",""address_first"":""chennai"",""address_second"":""che"",""city"":""chennai"",""state"":""-"",""country"":""-"",""zipcode"":""600002""}",
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/clients/[CLIENTID]");
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\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\"}");
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/clients/[CLIENTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]", 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/clients/[CLIENTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}
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/clients/[CLIENTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"zas\",\"webaddress\":\"https:\/\/zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\"}";
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/clients/[CLIENTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}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/clients/[CLIENTID]")
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]"];
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\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\"}" 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/clients/[CLIENTID]" 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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}|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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]")!
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002"}
""".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 projects associated with customer in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.UPDATE
Parameter
boolean
Specify whether to select all projects.
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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects";
params = Map();
params.put("select_all", false);
params.put("selected", {"group_ids":"-","project_ids":"170876000000106031"});
params.put("unselected", {"group_ids":"-","project_ids":"170876000000106031"});
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/clients/[CLIENTID]/projects');
const payload = JSON.stringify({"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}});
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/clients/[CLIENTID]/projects")
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 = '{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}',
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/clients/[CLIENTID]/projects"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}'
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/clients/[CLIENTID]/projects");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"select_all\":false,\"selected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"},\"unselected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"}}");
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/clients/[CLIENTID]/projects");
request.Content = new StringContent(
@"{""select_all"":false,""selected"":{""group_ids"":""-"",""project_ids"":""170876000000106031""},""unselected"":{""group_ids"":""-"",""project_ids"":""170876000000106031""}}",
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/clients/[CLIENTID]/projects");
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, "{\"select_all\":false,\"selected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"},\"unselected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"}}");
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/clients/[CLIENTID]/projects"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"select_all\":false,\"selected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"},\"unselected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"select_all\":false,\"selected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"},\"unselected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"}}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/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))
}
PATCH https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}
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/clients/[CLIENTID]/projects");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"select_all\":false,\"selected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"},\"unselected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"}}";
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/clients/[CLIENTID]/projects';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}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/clients/[CLIENTID]/projects")
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("""{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects"];
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 = [@"{\"select_all\":false,\"selected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"},\"unselected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"}}" 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/clients/[CLIENTID]/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|{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}|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 = @'
{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"select_all\":false,\"selected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"},\"unselected\":{\"group_ids\":\"-\",\"project_ids\":\"170876000000106031\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]/projects")!
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 = """
{"select_all":false,"selected":{"group_ids":"-","project_ids":"170876000000106031"},"unselected":{"group_ids":"-","project_ids":"170876000000106031"}}
""".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
INVALID_PARAMETER_VALUE HTTP 400
Remove a customer user from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.DELETE
Parameter
boolean
Specify whether to notify the user. 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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/clients/users/[ZPUID | EMAILID]?notify=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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
Remove the customer from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.DELETE
Parameter
boolean
Specify whether to notify the user. 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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]?notify=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]";
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/clients/[CLIENTID]');
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/clients/[CLIENTID]")
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/clients/[CLIENTID]" . "?" . 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/clients/[CLIENTID]"
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/clients/[CLIENTID]?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/clients/[CLIENTID]") { 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/clients/[CLIENTID]";
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/clients/[CLIENTID]" "?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/clients/[CLIENTID]", 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/clients/[CLIENTID]?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/clients/[CLIENTID]");
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/clients/[CLIENTID]';
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/clients/[CLIENTID]".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/clients/[CLIENTID]?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/clients/[CLIENTID]" ^ "?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/clients/[CLIENTID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/clients/[CLIENTID]"
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/clients/[CLIENTID]")!
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
Retrieve details of customer companies associated with a project.
OAuth Scope:
ZohoProjects.clients.READ
Query Parameter
String
Enter customer IDs.
String
Enter the sort order.E.g. alphabetical:desc
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/clients?ids=4000000029001&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients";
params = Map();
params.put("ids", "4000000029001");
params.put("sort", "alphabetical:asc");
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"});
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/clients');
url.searchParams.append('ids', '4000000029001');
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":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}');
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/clients")
params = {
"ids" => "4000000029001",
"sort" => "alphabetical:asc",
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"
}
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 = [
'ids' => '4000000029001',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients" . "?" . 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/clients"
params = {
"ids": "4000000029001",
"sort": "alphabetical:asc",
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"
}
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_ids = curl_easy_escape(curl, "4000000029001", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients?ids=%s&sort=%s&page=%s&per_page=%s&\"filter\"=%s", enc_ids, enc_sort, 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_ids);
curl_free(enc_sort);
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["ids"] = "4000000029001";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients") { 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_ids = curl_easy_escape(curl, "4000000029001", 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients";
url += "?ids=" + std::string(enc_ids);
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");
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_ids);
curl_free(enc_sort);
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-ids (java.net.URLEncoder/encode "4000000029001" "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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients" "?ids=" enc-ids "&sort=" enc-sort "&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/projects/1752587000000097024/clients", nil)
q := req.URL.Query()
q.Add("ids", "4000000029001")
q.Add("sort", "alphabetical:asc")
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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/clients?ids=4000000029001&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%22-%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%22offset%22%3A%22-%22%2C%22unit%22%3A%22-%22%2C%22prior%22%3A%22-%22%7D%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%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/clients");
uriBuilder.addParameter("ids", "4000000029001");
uriBuilder.addParameter("sort", "alphabetical:asc");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}");
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/clients';
const params = new URLSearchParams({
'ids': '4000000029001',
'sort': 'alphabetical:asc',
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}'
});
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));
ids = "4000000029001"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = {"criteria":[{"cfid":"4000000000242","api_name":"-","field_name":"-","criteria_condition":"contains","value":["1752587000000097269"],"relative_columns":[{"cfid":"4000000000242","offset":"-","unit":"-","prior":"-"}]}],"pattern":"1 AND 2"}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/clients".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("ids", "4000000029001")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
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 *encodedIds = [@"4000000029001" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients?ids=%@&sort=%@&page=%@&per_page=%@&"filter"=%@", encodedIds, encodedSort, 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_ids = Uri.pct_encode "4000000029001" 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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients" ^ "?ids=" ^ enc_ids ^ "&sort=" ^ enc_sort ^ "&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 = @{
ids = "4000000029001"
sort = "alphabetical:asc"
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"api_name`":`"-`",`"field_name`":`"-`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"],`"relative_columns`":[{`"cfid`":`"4000000000242`",`"offset`":`"-`",`"unit`":`"-`",`"prior`":`"-`"}]}],`"pattern`":`"1 AND 2`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients" + "?" + $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/clients"
params <- list(
ids = "4000000029001",
sort = "alphabetical:asc",
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"api_name\":\"-\",\"field_name\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}"
)
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/clients")!
components.queryItems = [
URLQueryItem(name: "ids", value: "4000000029001"),
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\":\"-\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"],\"relative_columns\":[{\"cfid\":\"4000000000242\",\"offset\":\"-\",\"unit\":\"-\",\"prior\":\"-\"}]}],\"pattern\":\"1 AND 2\"}")
]
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 customer companies and client users associated with a project.
OAuth Scope:
ZohoProjects.clients.READ
Query Parameter
int
Enter the view type.Accepted values: 0 (Inactive), 1 (Active).
String
Enter the sort criteria.E.g. last_accessed_time:desc
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/clients/users?view_type=1&sort=alphabetical%3Aasc&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/users";
params = Map();
params.put("view_type", 1);
params.put("sort", "alphabetical:asc");
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/clients/users');
url.searchParams.append('view_type', '1');
url.searchParams.append('sort', 'alphabetical:asc');
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/clients/users")
params = {
"view_type" => "1",
"sort" => "alphabetical:asc",
"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 = [
'view_type' => '1',
'sort' => 'alphabetical:asc',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/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/clients/users"
params = {
"view_type": "1",
"sort": "alphabetical:asc",
"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_view_type = curl_easy_escape(curl, "1", 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 url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/users?view_type=%s&sort=%s&page=%s&per_page=%s", enc_view_type, enc_sort, 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_view_type);
curl_free(enc_sort);
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["view_type"] = "1";
query["sort"] = "alphabetical:asc";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/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_view_type = curl_easy_escape(curl, "1", 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);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/users";
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);
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_type);
curl_free(enc_sort);
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-view_type (java.net.URLEncoder/encode "1" "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")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/users" "?view_type=" enc-view_type "&sort=" enc-sort "&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/clients/users", nil)
q := req.URL.Query()
q.Add("view_type", "1")
q.Add("sort", "alphabetical:asc")
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/clients/users?view_type=1&sort=alphabetical%3Aasc&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/clients/users");
uriBuilder.addParameter("view_type", "1");
uriBuilder.addParameter("sort", "alphabetical:asc");
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/clients/users';
const params = new URLSearchParams({
'view_type': '1',
'sort': 'alphabetical:asc',
'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));
view_type = 1
sort = "alphabetical:asc"
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/clients/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("view_type", "1")
urlBuilder.addQueryParameter("sort", "alphabetical:asc")
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 *encodedView_type = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort = [@"alphabetical:asc" 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/clients/users?view_type=%@&sort=%@&page=%@&per_page=%@", encodedView_type, encodedSort, 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_view_type = Uri.pct_encode "1" 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 uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/users" ^ "?view_type=" ^ enc_view_type ^ "&sort=" ^ enc_sort ^ "&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 = @{
view_type = "1"
sort = "alphabetical:asc"
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/clients/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/clients/users"
params <- list(
view_type = "1",
sort = "alphabetical:asc",
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/clients/users")!
components.queryItems = [
URLQueryItem(name: "view_type", value: "1"),
URLQueryItem(name: "sort", value: "alphabetical:asc"),
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 CRM accounts associated with a project.
OAuth Scope:
ZohoProjects.clients.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/projects/1752587000000097024/crm/accounts?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/crm/accounts";
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/crm/accounts');
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/crm/accounts")
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/crm/accounts" . "?" . 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/crm/accounts"
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/crm/accounts?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/crm/accounts") { 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/crm/accounts";
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/crm/accounts" "?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/crm/accounts", 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/crm/accounts?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/crm/accounts");
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/crm/accounts';
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/crm/accounts".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/crm/accounts?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/crm/accounts" ^ "?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/crm/accounts" + "?" + $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/crm/accounts"
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/crm/accounts")!
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 CRM deals associated with a project in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.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/projects/1752587000000097024/crm/deals?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/crm/deals";
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/crm/deals');
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/crm/deals")
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/crm/deals" . "?" . 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/crm/deals"
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/crm/deals?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/crm/deals") { 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/crm/deals";
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/crm/deals" "?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/crm/deals", 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/crm/deals?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/crm/deals");
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/crm/deals';
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/crm/deals".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/crm/deals?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/crm/deals" ^ "?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/crm/deals" + "?" + $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/crm/deals"
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/crm/deals")!
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 CRM contacts associated with a project.
OAuth Scope:
ZohoProjects.clients.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/projects/1752587000000097024/crm/contacts?page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/crm/contacts";
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/crm/contacts');
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/crm/contacts")
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/crm/contacts" . "?" . 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/crm/contacts"
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/crm/contacts?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/crm/contacts") { 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/crm/contacts";
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/crm/contacts" "?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/crm/contacts", 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/crm/contacts?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/crm/contacts");
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/crm/contacts';
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/crm/contacts".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/crm/contacts?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/crm/contacts" ^ "?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/crm/contacts" + "?" + $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/crm/contacts"
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/crm/contacts")!
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
Create new customer within a project in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.clients.CREATE
Parameter
String
max length : 200Enter the customer name.
String
max length : 50Enter the web address.
String
max length : 100Enter address line 1.
String
max length : 100Enter address line 2.
String
max length : 50Enter the city.
String
max length : 50Enter the state.
String
max length : 50Enter the country.
String
max length : 20Enter the ZIP code.
int
default : 1Enter the customer type. Accepted values: 1 (Business), 2 (Individual).
long
Enter the Zoho CRM Account 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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients";
params = Map();
params.put("name", "zas");
params.put("webaddress", "https://zas.com");
params.put("address_first", "chennai");
params.put("address_second", "che");
params.put("city", "chennai");
params.put("state", "-");
params.put("country", "-");
params.put("zipcode", "600002");
params.put("customer_type", "1");
params.put("zohocrm_account_id", "-");
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/clients');
const payload = JSON.stringify({"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"});
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/clients")
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}',
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/clients"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}'
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/clients");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\",\"zohocrm_account_id\":\"-\"}");
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/clients");
request.Content = new StringContent(
@"{""name"":""zas"",""webaddress"":""https://zas.com"",""address_first"":""chennai"",""address_second"":""che"",""city"":""chennai"",""state"":""-"",""country"":""-"",""zipcode"":""600002"",""customer_type"":""1"",""zohocrm_account_id"":""-""}",
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/clients");
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\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\",\"zohocrm_account_id\":\"-\"}");
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/clients"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\",\"zohocrm_account_id\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\",\"zohocrm_account_id\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients", 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/clients HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}
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/clients");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"zas\",\"webaddress\":\"https:\/\/zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\",\"zohocrm_account_id\":\"-\"}";
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/clients';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}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/clients")
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients"];
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\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\",\"zohocrm_account_id\":\"-\"}" 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/clients" 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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}|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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"zas\",\"webaddress\":\"https://zas.com\",\"address_first\":\"chennai\",\"address_second\":\"che\",\"city\":\"chennai\",\"state\":\"-\",\"country\":\"-\",\"zipcode\":\"600002\",\"customer_type\":\"1\",\"zohocrm_account_id\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients")!
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":"zas","webaddress":"https://zas.com","address_first":"chennai","address_second":"che","city":"chennai","state":"-","country":"-","zipcode":"600002","customer_type":"1","zohocrm_account_id":"-"}
""".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
Associate customers to a project.
OAuth Scope:
ZohoProjects.clients.CREATE
Parameter
long
requiredEnter the customer IDs
boolean
Specify whether the customer is a primary customer.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/associate-client' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'id = "4000000062001"'
--form 'is_primary_client = "false"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client";
params = Map();
params.put("id", "4000000062001");
params.put("is_primary_client", "false");
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/associate-client');
url.searchParams.append('id', '4000000062001');
url.searchParams.append('is_primary_client', 'false');
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/associate-client")
params = {
"id" => "4000000062001",
"is_primary_client" => "false"
}
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 = [
'id' => '4000000062001',
'is_primary_client' => 'false',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client" . "?" . 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/associate-client"
params = {
"id": "4000000062001",
"is_primary_client": "false"
}
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_id = curl_easy_escape(curl, "4000000062001", 0);
char *enc_is_primary_client = curl_easy_escape(curl, "false", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client?id=%s&is_primary_client=%s", enc_id, enc_is_primary_client);
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_id);
curl_free(enc_is_primary_client);
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["id"] = "4000000062001";
query["is_primary_client"] = "false";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client") { 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_id = curl_easy_escape(curl, "4000000062001", 0);
char* enc_is_primary_client = curl_easy_escape(curl, "false", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client";
url += "?id=" + std::string(enc_id);
url += "&is_primary_client=" + std::string(enc_is_primary_client);
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_id);
curl_free(enc_is_primary_client);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-id (java.net.URLEncoder/encode "4000000062001" "UTF-8")
enc-is_primary_client (java.net.URLEncoder/encode "false" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client" "?id=" enc-id "&is_primary_client=" enc-is_primary_client)]
(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/associate-client", nil)
q := req.URL.Query()
q.Add("id", "4000000062001")
q.Add("is_primary_client", "false")
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/associate-client?id=4000000062001&is_primary_client=false 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/associate-client");
uriBuilder.addParameter("id", "4000000062001");
uriBuilder.addParameter("is_primary_client", "false");
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/associate-client';
const params = new URLSearchParams({
'id': '4000000062001',
'is_primary_client': 'false'
});
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));
id = "4000000062001"
is_primary_client = "false"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/associate-client".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("id", "4000000062001")
urlBuilder.addQueryParameter("is_primary_client", "false")
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 *encodedId = [@"4000000062001" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIs_primary_client = [@"false" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client?id=%@&is_primary_client=%@", encodedId, encodedIs_primary_client];
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_id = Uri.pct_encode "4000000062001" in
let enc_is_primary_client = Uri.pct_encode "false" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client" ^ "?id=" ^ enc_id ^ "&is_primary_client=" ^ enc_is_primary_client) 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 = @{
id = "4000000062001"
is_primary_client = "false"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/associate-client" + "?" + $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/associate-client"
params <- list(
id = "4000000062001",
is_primary_client = "false"
)
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/associate-client")!
components.queryItems = [
URLQueryItem(name: "id", value: "4000000062001"),
URLQueryItem(name: "is_primary_client", value: "false")
]
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
Update the primary customer of a project.
OAuth Scope:
ZohoProjects.clients.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/primary-client/[PRIMARY-CLIENTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/primary-client/[PRIMARY-CLIENTID]";
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/primary-client/[PRIMARY-CLIENTID]');
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/primary-client/[PRIMARY-CLIENTID]")
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/primary-client/[PRIMARY-CLIENTID]";
$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/primary-client/[PRIMARY-CLIENTID]"
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/primary-client/[PRIMARY-CLIENTID]");
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/primary-client/[PRIMARY-CLIENTID]");
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/primary-client/[PRIMARY-CLIENTID]");
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/primary-client/[PRIMARY-CLIENTID]"
{: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/primary-client/[PRIMARY-CLIENTID]", 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/primary-client/[PRIMARY-CLIENTID] 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/primary-client/[PRIMARY-CLIENTID]");
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/primary-client/[PRIMARY-CLIENTID]';
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/primary-client/[PRIMARY-CLIENTID]")
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/primary-client/[PRIMARY-CLIENTID]"];
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/primary-client/[PRIMARY-CLIENTID]" 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/primary-client/[PRIMARY-CLIENTID]" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/primary-client/[PRIMARY-CLIENTID]"
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/primary-client/[PRIMARY-CLIENTID]")!
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 customer user from the project.
OAuth Scope:
ZohoProjects.clients.DELETE
Parameter
boolean
Specify whether to notify the user. 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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/users/[ZPUID | EMAILID]?notify=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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/clients/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
Remove a customer from the project.
OAuth Scope:
ZohoProjects.clients.DELETE
Parameter
boolean
Specify whether to notify the user.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 DELETE \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/[CLIENTID]?notify=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/clients/[CLIENTID]";
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/clients/[CLIENTID]');
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/clients/[CLIENTID]")
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/clients/[CLIENTID]" . "?" . 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/clients/[CLIENTID]"
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/clients/[CLIENTID]?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/clients/[CLIENTID]") { 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/clients/[CLIENTID]";
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/clients/[CLIENTID]" "?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/clients/[CLIENTID]", 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/clients/[CLIENTID]?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/clients/[CLIENTID]");
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/clients/[CLIENTID]';
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/clients/[CLIENTID]".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/clients/[CLIENTID]?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/clients/[CLIENTID]" ^ "?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/clients/[CLIENTID]" + "?" + $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/clients/[CLIENTID]"
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/clients/[CLIENTID]")!
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
This module covers contact related operations within Zoho Projects. Use this API to create, update, associate, or delete contacts and manage their details.
Retrieve all contacts from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
int
Enter the index of the record.
int
Enter the range of the record.
String
Enter 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/client/[CLIENTID]/contacts?index=0&range=200&search_string=%5C%22admin%5C%22' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts";
params = Map();
params.put("index", "0");
params.put("range", "200");
params.put("search_string", ""admin"");
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/client/[CLIENTID]/contacts');
url.searchParams.append('index', '0');
url.searchParams.append('range', '200');
url.searchParams.append('search_string', '\"admin\"');
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/client/[CLIENTID]/contacts")
params = {
"index" => "0",
"range" => "200",
"search_string" => "\\"admin\\""
}
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' => '0',
'range' => '200',
'search_string' => '\"admin\"',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts" . "?" . 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/client/[CLIENTID]/contacts"
params = {
"index": "0",
"range": "200",
"search_string": "\\"admin\\""
}
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, "0", 0);
char *enc_range = curl_easy_escape(curl, "200", 0);
char *enc_search_string = curl_easy_escape(curl, "\\\"admin\\\"", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts?index=%s&range=%s&search_string=%s", enc_index, enc_range, enc_search_string);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_search_string);
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"] = "0";
query["range"] = "200";
query["search_string"] = "\\"admin\\"";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts") { 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, "0", 0);
char* enc_range = curl_easy_escape(curl, "200", 0);
char* enc_search_string = curl_easy_escape(curl, "\\\"admin\\\"", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts";
url += "?index=" + std::string(enc_index);
url += "&range=" + std::string(enc_range);
url += "&search_string=" + std::string(enc_search_string);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_search_string);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-index (java.net.URLEncoder/encode "0" "UTF-8")
enc-range (java.net.URLEncoder/encode "200" "UTF-8")
enc-search_string (java.net.URLEncoder/encode "\\"admin\\"" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts" "?index=" enc-index "&range=" enc-range "&search_string=" enc-search_string)]
(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/client/[CLIENTID]/contacts", nil)
q := req.URL.Query()
q.Add("index", "0")
q.Add("range", "200")
q.Add("search_string", "\\"admin\\"")
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/client/[CLIENTID]/contacts?index=0&range=200&search_string=%5C%22admin%5C%22 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/[CLIENTID]/contacts");
uriBuilder.addParameter("index", "0");
uriBuilder.addParameter("range", "200");
uriBuilder.addParameter("search_string", "\\"admin\\"");
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/client/[CLIENTID]/contacts';
const params = new URLSearchParams({
'index': '0',
'range': '200',
'search_string': '\"admin\"'
});
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 = "0"
range = "200"
search_string = "\"admin\""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/[CLIENTID]/contacts".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("index", "0")
urlBuilder.addQueryParameter("range", "200")
urlBuilder.addQueryParameter("search_string", "\\"admin\\"")
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 = [@"0" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"200" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_string = [@"\\\"admin\\\"" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts?index=%@&range=%@&search_string=%@", encodedIndex, encodedRange, encodedSearch_string];
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 "0" in
let enc_range = Uri.pct_encode "200" in
let enc_search_string = Uri.pct_encode "\\"admin\\"" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts" ^ "?index=" ^ enc_index ^ "&range=" ^ enc_range ^ "&search_string=" ^ enc_search_string) 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 = "0"
range = "200"
search_string = "\`"admin\`""
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/client/[CLIENTID]/contacts"
params <- list(
index = "0",
range = "200",
search_string = "\\"admin\\""
)
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/client/[CLIENTID]/contacts")!
components.queryItems = [
URLQueryItem(name: "index", value: "0"),
URLQueryItem(name: "range", value: "200"),
URLQueryItem(name: "search_string", value: "\\"admin\\"")
]
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 contact 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/portal/739121528/contacts/[CONTACTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]";
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/contacts/[CONTACTID]');
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/contacts/[CONTACTID]")
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/contacts/[CONTACTID]";
$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/contacts/[CONTACTID]"
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]"
{: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/contacts/[CONTACTID]", 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/contacts/[CONTACTID] 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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]';
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/contacts/[CONTACTID]")
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/contacts/[CONTACTID]"];
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/contacts/[CONTACTID]" 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/contacts/[CONTACTID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]"
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/contacts/[CONTACTID]")!
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 new contacts in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
JSONArray
Enter the project IDs.
long
Enter the customer ID.
String
Enter the customer name.
long
Enter the project ID.
boolean
Specify whether to select all projects. Accepted values: true or false.
String
Specify whether the client is a primary client. Accepted values : yes or no.
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/contacts' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"contacts" = [{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}]'
--form 'workprojects = "[\"4000000017005\"]"'
--form '"bulkprojects" = {"select_all":"false","selected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"unselected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"rateupdatedprojects":{"longkey":"23806000097686004"},"costrateupdatedprojects":{"longkey":"23806000097686004"}}'
--form 'clientId = "23806000097687000"'
--form 'clientName = "client admin"'
--form 'projectId = "23806000097687000"'
--form 'all_projects = "false"'
--form 'primaryclient = "yes"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts";
params = Map();
params.put("contacts", [{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}]);
params.put("workprojects", "["4000000017005"]");
params.put("bulkprojects", {"select_all":"false","selected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"unselected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"rateupdatedprojects":{"longkey":"23806000097686004"},"costrateupdatedprojects":{"longkey":"23806000097686004"}});
params.put("clientId", "23806000097687000");
params.put("clientName", "client admin");
params.put("projectId", "23806000097687000");
params.put("all_projects", "false");
params.put("primaryclient", "yes");
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/contacts');
url.searchParams.append('"contacts"', '[{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}]');
url.searchParams.append('workprojects', '[\"4000000017005\"]');
url.searchParams.append('"bulkprojects"', '{"select_all":"false","selected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"unselected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"rateupdatedprojects":{"longkey":"23806000097686004"},"costrateupdatedprojects":{"longkey":"23806000097686004"}}');
url.searchParams.append('clientId', '23806000097687000');
url.searchParams.append('clientName', 'client admin');
url.searchParams.append('projectId', '23806000097687000');
url.searchParams.append('all_projects', 'false');
url.searchParams.append('primaryclient', 'yes');
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/contacts")
params = {
""contacts"" => "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]",
"workprojects" => "[\\"4000000017005\\"]",
""bulkprojects"" => "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}",
"clientId" => "23806000097687000",
"clientName" => "client admin",
"projectId" => "23806000097687000",
"all_projects" => "false",
"primaryclient" => "yes"
}
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 = [
'"contacts"' => '[{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}]',
'workprojects' => '[\"4000000017005\"]',
'"bulkprojects"' => '{"select_all":"false","selected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"unselected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"rateupdatedprojects":{"longkey":"23806000097686004"},"costrateupdatedprojects":{"longkey":"23806000097686004"}}',
'clientId' => '23806000097687000',
'clientName' => 'client admin',
'projectId' => '23806000097687000',
'all_projects' => 'false',
'primaryclient' => 'yes',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts" . "?" . 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/contacts"
params = {
""contacts"": "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]",
"workprojects": "[\\"4000000017005\\"]",
""bulkprojects"": "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}",
"clientId": "23806000097687000",
"clientName": "client admin",
"projectId": "23806000097687000",
"all_projects": "false",
"primaryclient": "yes"
}
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_"contacts" = curl_easy_escape(curl, "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]", 0);
char *enc_workprojects = curl_easy_escape(curl, "[\\\"4000000017005\\\"]", 0);
char *enc_"bulkprojects" = curl_easy_escape(curl, "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}", 0);
char *enc_clientId = curl_easy_escape(curl, "23806000097687000", 0);
char *enc_clientName = curl_easy_escape(curl, "client admin", 0);
char *enc_projectId = curl_easy_escape(curl, "23806000097687000", 0);
char *enc_all_projects = curl_easy_escape(curl, "false", 0);
char *enc_primaryclient = curl_easy_escape(curl, "yes", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts?\"contacts\"=%s&workprojects=%s&\"bulkprojects\"=%s&clientId=%s&clientName=%s&projectId=%s&all_projects=%s&primaryclient=%s", enc_"contacts", enc_workprojects, enc_"bulkprojects", enc_clientId, enc_clientName, enc_projectId, enc_all_projects, enc_primaryclient);
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_"contacts");
curl_free(enc_workprojects);
curl_free(enc_"bulkprojects");
curl_free(enc_clientId);
curl_free(enc_clientName);
curl_free(enc_projectId);
curl_free(enc_all_projects);
curl_free(enc_primaryclient);
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[""contacts""] = "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]";
query["workprojects"] = "[\\"4000000017005\\"]";
query[""bulkprojects""] = "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}";
query["clientId"] = "23806000097687000";
query["clientName"] = "client admin";
query["projectId"] = "23806000097687000";
query["all_projects"] = "false";
query["primaryclient"] = "yes";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/contacts") { 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_"contacts" = curl_easy_escape(curl, "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]", 0);
char* enc_workprojects = curl_easy_escape(curl, "[\\\"4000000017005\\\"]", 0);
char* enc_"bulkprojects" = curl_easy_escape(curl, "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}", 0);
char* enc_clientId = curl_easy_escape(curl, "23806000097687000", 0);
char* enc_clientName = curl_easy_escape(curl, "client admin", 0);
char* enc_projectId = curl_easy_escape(curl, "23806000097687000", 0);
char* enc_all_projects = curl_easy_escape(curl, "false", 0);
char* enc_primaryclient = curl_easy_escape(curl, "yes", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts";
url += "?"contacts"=" + std::string(enc_"contacts");
url += "&workprojects=" + std::string(enc_workprojects);
url += "&"bulkprojects"=" + std::string(enc_"bulkprojects");
url += "&clientId=" + std::string(enc_clientId);
url += "&clientName=" + std::string(enc_clientName);
url += "&projectId=" + std::string(enc_projectId);
url += "&all_projects=" + std::string(enc_all_projects);
url += "&primaryclient=" + std::string(enc_primaryclient);
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_"contacts");
curl_free(enc_workprojects);
curl_free(enc_"bulkprojects");
curl_free(enc_clientId);
curl_free(enc_clientName);
curl_free(enc_projectId);
curl_free(enc_all_projects);
curl_free(enc_primaryclient);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"contacts" (java.net.URLEncoder/encode "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]" "UTF-8")
enc-workprojects (java.net.URLEncoder/encode "[\\"4000000017005\\"]" "UTF-8")
enc-"bulkprojects" (java.net.URLEncoder/encode "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}" "UTF-8")
enc-clientId (java.net.URLEncoder/encode "23806000097687000" "UTF-8")
enc-clientName (java.net.URLEncoder/encode "client admin" "UTF-8")
enc-projectId (java.net.URLEncoder/encode "23806000097687000" "UTF-8")
enc-all_projects (java.net.URLEncoder/encode "false" "UTF-8")
enc-primaryclient (java.net.URLEncoder/encode "yes" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts" "?"contacts"=" enc-"contacts" "&workprojects=" enc-workprojects "&"bulkprojects"=" enc-"bulkprojects" "&clientId=" enc-clientId "&clientName=" enc-clientName "&projectId=" enc-projectId "&all_projects=" enc-all_projects "&primaryclient=" enc-primaryclient)]
(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/contacts", nil)
q := req.URL.Query()
q.Add(""contacts"", "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]")
q.Add("workprojects", "[\\"4000000017005\\"]")
q.Add(""bulkprojects"", "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}")
q.Add("clientId", "23806000097687000")
q.Add("clientName", "client admin")
q.Add("projectId", "23806000097687000")
q.Add("all_projects", "false")
q.Add("primaryclient", "yes")
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/contacts?%22contacts%22=%5B%7B%22email%22%3A%22contacts%40zylker.com%22%2C%22first_name%22%3A%22contact%22%2C%22last_name%22%3A%22admin%22%2C%22invoice_rate%22%3A%22100%22%2C%22projects%22%3A%224000000017005%22%2C%22all_projects%22%3A%22false%22%7D%5D&workprojects=%5B%5C%224000000017005%5C%22%5D&%22bulkprojects%22=%7B%22select_all%22%3A%22false%22%2C%22selected%22%3A%7B%22group_ids%22%3A%5B%2223806000097686005%22%5D%2C%22project_ids%22%3A%5B%2223806000097686006%22%5D%7D%2C%22unselected%22%3A%7B%22group_ids%22%3A%5B%2223806000097686005%22%5D%2C%22project_ids%22%3A%5B%2223806000097686006%22%5D%7D%2C%22rateupdatedprojects%22%3A%7B%22longkey%22%3A%2223806000097686004%22%7D%2C%22costrateupdatedprojects%22%3A%7B%22longkey%22%3A%2223806000097686004%22%7D%7D&clientId=23806000097687000&clientName=client+admin&projectId=23806000097687000&all_projects=false&primaryclient=yes 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/contacts");
uriBuilder.addParameter(""contacts"", "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]");
uriBuilder.addParameter("workprojects", "[\\"4000000017005\\"]");
uriBuilder.addParameter(""bulkprojects"", "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}");
uriBuilder.addParameter("clientId", "23806000097687000");
uriBuilder.addParameter("clientName", "client admin");
uriBuilder.addParameter("projectId", "23806000097687000");
uriBuilder.addParameter("all_projects", "false");
uriBuilder.addParameter("primaryclient", "yes");
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/contacts';
const params = new URLSearchParams({
'"contacts"': '[{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}]',
'workprojects': '[\"4000000017005\"]',
'"bulkprojects"': '{"select_all":"false","selected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"unselected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"rateupdatedprojects":{"longkey":"23806000097686004"},"costrateupdatedprojects":{"longkey":"23806000097686004"}}',
'clientId': '23806000097687000',
'clientName': 'client admin',
'projectId': '23806000097687000',
'all_projects': 'false',
'primaryclient': 'yes'
});
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));
"contacts" = [{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}]
workprojects = "[\"4000000017005\"]"
"bulkprojects" = {"select_all":"false","selected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"unselected":{"group_ids":["23806000097686005"],"project_ids":["23806000097686006"]},"rateupdatedprojects":{"longkey":"23806000097686004"},"costrateupdatedprojects":{"longkey":"23806000097686004"}}
clientId = "23806000097687000"
clientName = "client admin"
projectId = "23806000097687000"
all_projects = "false"
primaryclient = "yes"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/contacts".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""contacts"", "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]")
urlBuilder.addQueryParameter("workprojects", "[\\"4000000017005\\"]")
urlBuilder.addQueryParameter(""bulkprojects"", "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}")
urlBuilder.addQueryParameter("clientId", "23806000097687000")
urlBuilder.addQueryParameter("clientName", "client admin")
urlBuilder.addQueryParameter("projectId", "23806000097687000")
urlBuilder.addQueryParameter("all_projects", "false")
urlBuilder.addQueryParameter("primaryclient", "yes")
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"contacts" = [@"[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedWorkprojects = [@"[\\\"4000000017005\\\"]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encoded"bulkprojects" = [@"{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedClientId = [@"23806000097687000" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedClientName = [@"client admin" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProjectId = [@"23806000097687000" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedAll_projects = [@"false" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedPrimaryclient = [@"yes" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/contacts?"contacts"=%@&workprojects=%@&"bulkprojects"=%@&clientId=%@&clientName=%@&projectId=%@&all_projects=%@&primaryclient=%@", encoded"contacts", encodedWorkprojects, encoded"bulkprojects", encodedClientId, encodedClientName, encodedProjectId, encodedAll_projects, encodedPrimaryclient];
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_"contacts" = Uri.pct_encode "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]" in
let enc_workprojects = Uri.pct_encode "[\\"4000000017005\\"]" in
let enc_"bulkprojects" = Uri.pct_encode "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}" in
let enc_clientId = Uri.pct_encode "23806000097687000" in
let enc_clientName = Uri.pct_encode "client admin" in
let enc_projectId = Uri.pct_encode "23806000097687000" in
let enc_all_projects = Uri.pct_encode "false" in
let enc_primaryclient = Uri.pct_encode "yes" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/contacts" ^ "?"contacts"=" ^ enc_"contacts" ^ "&workprojects=" ^ enc_workprojects ^ "&"bulkprojects"=" ^ enc_"bulkprojects" ^ "&clientId=" ^ enc_clientId ^ "&clientName=" ^ enc_clientName ^ "&projectId=" ^ enc_projectId ^ "&all_projects=" ^ enc_all_projects ^ "&primaryclient=" ^ enc_primaryclient) 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 = @{
"contacts" = "[{`"email`":`"contacts@zylker.com`",`"first_name`":`"contact`",`"last_name`":`"admin`",`"invoice_rate`":`"100`",`"projects`":`"4000000017005`",`"all_projects`":`"false`"}]"
workprojects = "[\`"4000000017005\`"]"
"bulkprojects" = "{`"select_all`":`"false`",`"selected`":{`"group_ids`":[`"23806000097686005`"],`"project_ids`":[`"23806000097686006`"]},`"unselected`":{`"group_ids`":[`"23806000097686005`"],`"project_ids`":[`"23806000097686006`"]},`"rateupdatedprojects`":{`"longkey`":`"23806000097686004`"},`"costrateupdatedprojects`":{`"longkey`":`"23806000097686004`"}}"
clientId = "23806000097687000"
clientName = "client admin"
projectId = "23806000097687000"
all_projects = "false"
primaryclient = "yes"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts"
params <- list(
"contacts" = "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]",
workprojects = "[\\"4000000017005\\"]",
"bulkprojects" = "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}",
clientId = "23806000097687000",
clientName = "client admin",
projectId = "23806000097687000",
all_projects = "false",
primaryclient = "yes"
)
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/contacts")!
components.queryItems = [
URLQueryItem(name: ""contacts"", value: "[{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}]"),
URLQueryItem(name: "workprojects", value: "[\\"4000000017005\\"]"),
URLQueryItem(name: ""bulkprojects"", value: "{\"select_all\":\"false\",\"selected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"unselected\":{\"group_ids\":[\"23806000097686005\"],\"project_ids\":[\"23806000097686006\"]},\"rateupdatedprojects\":{\"longkey\":\"23806000097686004\"},\"costrateupdatedprojects\":{\"longkey\":\"23806000097686004\"}}"),
URLQueryItem(name: "clientId", value: "23806000097687000"),
URLQueryItem(name: "clientName", value: "client admin"),
URLQueryItem(name: "projectId", value: "23806000097687000"),
URLQueryItem(name: "all_projects", value: "false"),
URLQueryItem(name: "primaryclient", value: "yes")
]
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
Convert contact to a client user in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
String
Enter the email ID.
long
Enter the profile ID.
String
Enter the invoice rate of the user. E.g. $30 per hour.
JSONArray
Enter the project IDs.
boolean
Specify whether to select all projects. 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/contacts/[CONTACTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'email = "contacts@zylker.com"'
--form 'profileId = "4000001099097"'
--form 'invoice_rate = "100"'
--form 'workprojects = "[\"4000000017005\"]"'
--form 'all_projects = "false"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]";
params = Map();
params.put("email", "contacts@zylker.com");
params.put("profileId", "4000001099097");
params.put("invoice_rate", "100");
params.put("workprojects", "["4000000017005"]");
params.put("all_projects", "false");
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/contacts/[CONTACTID]');
url.searchParams.append('email', 'contacts@zylker.com');
url.searchParams.append('profileId', '4000001099097');
url.searchParams.append('invoice_rate', '100');
url.searchParams.append('workprojects', '[\"4000000017005\"]');
url.searchParams.append('all_projects', 'false');
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/contacts/[CONTACTID]")
params = {
"email" => "contacts@zylker.com",
"profileId" => "4000001099097",
"invoice_rate" => "100",
"workprojects" => "[\\"4000000017005\\"]",
"all_projects" => "false"
}
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 = [
'email' => 'contacts@zylker.com',
'profileId' => '4000001099097',
'invoice_rate' => '100',
'workprojects' => '[\"4000000017005\"]',
'all_projects' => 'false',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]" . "?" . 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/contacts/[CONTACTID]"
params = {
"email": "contacts@zylker.com",
"profileId": "4000001099097",
"invoice_rate": "100",
"workprojects": "[\\"4000000017005\\"]",
"all_projects": "false"
}
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_email = curl_easy_escape(curl, "contacts@zylker.com", 0);
char *enc_profileId = curl_easy_escape(curl, "4000001099097", 0);
char *enc_invoice_rate = curl_easy_escape(curl, "100", 0);
char *enc_workprojects = curl_easy_escape(curl, "[\\\"4000000017005\\\"]", 0);
char *enc_all_projects = curl_easy_escape(curl, "false", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]?email=%s&profileId=%s&invoice_rate=%s&workprojects=%s&all_projects=%s", enc_email, enc_profileId, enc_invoice_rate, enc_workprojects, enc_all_projects);
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_email);
curl_free(enc_profileId);
curl_free(enc_invoice_rate);
curl_free(enc_workprojects);
curl_free(enc_all_projects);
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["email"] = "contacts@zylker.com";
query["profileId"] = "4000001099097";
query["invoice_rate"] = "100";
query["workprojects"] = "[\\"4000000017005\\"]";
query["all_projects"] = "false";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]") { 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_email = curl_easy_escape(curl, "contacts@zylker.com", 0);
char* enc_profileId = curl_easy_escape(curl, "4000001099097", 0);
char* enc_invoice_rate = curl_easy_escape(curl, "100", 0);
char* enc_workprojects = curl_easy_escape(curl, "[\\\"4000000017005\\\"]", 0);
char* enc_all_projects = curl_easy_escape(curl, "false", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]";
url += "?email=" + std::string(enc_email);
url += "&profileId=" + std::string(enc_profileId);
url += "&invoice_rate=" + std::string(enc_invoice_rate);
url += "&workprojects=" + std::string(enc_workprojects);
url += "&all_projects=" + std::string(enc_all_projects);
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_email);
curl_free(enc_profileId);
curl_free(enc_invoice_rate);
curl_free(enc_workprojects);
curl_free(enc_all_projects);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-email (java.net.URLEncoder/encode "contacts@zylker.com" "UTF-8")
enc-profileId (java.net.URLEncoder/encode "4000001099097" "UTF-8")
enc-invoice_rate (java.net.URLEncoder/encode "100" "UTF-8")
enc-workprojects (java.net.URLEncoder/encode "[\\"4000000017005\\"]" "UTF-8")
enc-all_projects (java.net.URLEncoder/encode "false" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]" "?email=" enc-email "&profileId=" enc-profileId "&invoice_rate=" enc-invoice_rate "&workprojects=" enc-workprojects "&all_projects=" enc-all_projects)]
(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/contacts/[CONTACTID]", nil)
q := req.URL.Query()
q.Add("email", "contacts@zylker.com")
q.Add("profileId", "4000001099097")
q.Add("invoice_rate", "100")
q.Add("workprojects", "[\\"4000000017005\\"]")
q.Add("all_projects", "false")
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/contacts/[CONTACTID]?email=contacts%40zylker.com&profileId=4000001099097&invoice_rate=100&workprojects=%5B%5C%224000000017005%5C%22%5D&all_projects=false 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/contacts/[CONTACTID]");
uriBuilder.addParameter("email", "contacts@zylker.com");
uriBuilder.addParameter("profileId", "4000001099097");
uriBuilder.addParameter("invoice_rate", "100");
uriBuilder.addParameter("workprojects", "[\\"4000000017005\\"]");
uriBuilder.addParameter("all_projects", "false");
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/contacts/[CONTACTID]';
const params = new URLSearchParams({
'email': 'contacts@zylker.com',
'profileId': '4000001099097',
'invoice_rate': '100',
'workprojects': '[\"4000000017005\"]',
'all_projects': 'false'
});
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));
email = "contacts@zylker.com"
profileId = "4000001099097"
invoice_rate = "100"
workprojects = "[\"4000000017005\"]"
all_projects = "false"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/contacts/[CONTACTID]".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("email", "contacts@zylker.com")
urlBuilder.addQueryParameter("profileId", "4000001099097")
urlBuilder.addQueryParameter("invoice_rate", "100")
urlBuilder.addQueryParameter("workprojects", "[\\"4000000017005\\"]")
urlBuilder.addQueryParameter("all_projects", "false")
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 *encodedEmail = [@"contacts@zylker.com" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedProfileId = [@"4000001099097" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedInvoice_rate = [@"100" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedWorkprojects = [@"[\\\"4000000017005\\\"]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedAll_projects = [@"false" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]?email=%@&profileId=%@&invoice_rate=%@&workprojects=%@&all_projects=%@", encodedEmail, encodedProfileId, encodedInvoice_rate, encodedWorkprojects, encodedAll_projects];
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_email = Uri.pct_encode "contacts@zylker.com" in
let enc_profileId = Uri.pct_encode "4000001099097" in
let enc_invoice_rate = Uri.pct_encode "100" in
let enc_workprojects = Uri.pct_encode "[\\"4000000017005\\"]" in
let enc_all_projects = Uri.pct_encode "false" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]" ^ "?email=" ^ enc_email ^ "&profileId=" ^ enc_profileId ^ "&invoice_rate=" ^ enc_invoice_rate ^ "&workprojects=" ^ enc_workprojects ^ "&all_projects=" ^ enc_all_projects) 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 = @{
email = "contacts@zylker.com"
profileId = "4000001099097"
invoice_rate = "100"
workprojects = "[\`"4000000017005\`"]"
all_projects = "false"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]"
params <- list(
email = "contacts@zylker.com",
profileId = "4000001099097",
invoice_rate = "100",
workprojects = "[\\"4000000017005\\"]",
all_projects = "false"
)
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/contacts/[CONTACTID]")!
components.queryItems = [
URLQueryItem(name: "email", value: "contacts@zylker.com"),
URLQueryItem(name: "profileId", value: "4000001099097"),
URLQueryItem(name: "invoice_rate", value: "100"),
URLQueryItem(name: "workprojects", value: "[\\"4000000017005\\"]"),
URLQueryItem(name: "all_projects", value: "false")
]
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
Update a contact in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.users.UPDATE
Parameter
String
Enter the email ID.
String
max length : 50Enter the first name.
String
max length : 50Enter the last name.
String
max length : 10Enter the invoice rate of the user. E.g. $30 per hour.
JSONArray
max length : 200000array size : 0-10000
Enter the project IDs.
boolean
Specify whether to select all projects. 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]";
params = Map();
params.put("email", "contacts@zylker.com");
params.put("first_name", "contact");
params.put("last_name", "admin");
params.put("invoice_rate", "100");
params.put("projects", "4000000017005");
params.put("all_projects", "false");
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/contacts/[CONTACTID]');
const payload = JSON.stringify({"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(payload)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.write(payload);
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]")
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 = '{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}',
CURLOPT_HTTPHEADER => [
"Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}'
response = requests.patch(url, headers=headers, data=payload)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var request = new HttpRequestMessage(HttpMethod.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]");
request.Content = new StringContent(
@"{""email"":""contacts@zylker.com"",""first_name"":""contact"",""last_name"":""admin"",""invoice_rate"":""100"",""projects"":""4000000017005"",""all_projects"":""false""}",
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]");
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, "{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}");
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(def response
(client/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]", 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/contacts/[CONTACTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}";
requestBase.setEntity(new StringEntity(requestBody, HTTP.UTF_8));
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}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/contacts/[CONTACTID]")
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("""{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]"];
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 = [@"{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let uri = Uri.of_string "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]" 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|{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}|json} in
Lwt_main.run (
Client.patch ~headers ~body uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" = "application/json"
}
$body = @'
{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"email\":\"contacts@zylker.com\",\"first_name\":\"contact\",\"last_name\":\"admin\",\"invoice_rate\":\"100\",\"projects\":\"4000000017005\",\"all_projects\":\"false\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]")!
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 = """
{"email":"contacts@zylker.com","first_name":"contact","last_name":"admin","invoice_rate":"100","projects":"4000000017005","all_projects":"false"}
""".data(using: .utf8)
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Remove a contact from the Zoho Projects 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/contacts/[CONTACTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]";
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/contacts/[CONTACTID]');
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/contacts/[CONTACTID]")
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/contacts/[CONTACTID]";
$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/contacts/[CONTACTID]"
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]"
{: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/contacts/[CONTACTID]", 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/contacts/[CONTACTID] 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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]';
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/contacts/[CONTACTID]")
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/contacts/[CONTACTID]"];
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/contacts/[CONTACTID]" 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/contacts/[CONTACTID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/contacts/[CONTACTID]"
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/contacts/[CONTACTID]")!
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
Retrieve all customer contacts associated with a project.
OAuth Scope:
ZohoProjects.users.READ
Query Parameter
int
Enter the index of the record.
int
Enter the range of the record.
String
Enter 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/projects/1752587000000097024/client/[CLIENTID]/contacts?index=0&range=200&search_string=%5C%22admin%5C%22' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts";
params = Map();
params.put("index", "0");
params.put("range", "200");
params.put("search_string", ""admin"");
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/client/[CLIENTID]/contacts');
url.searchParams.append('index', '0');
url.searchParams.append('range', '200');
url.searchParams.append('search_string', '\"admin\"');
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/client/[CLIENTID]/contacts")
params = {
"index" => "0",
"range" => "200",
"search_string" => "\\"admin\\""
}
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' => '0',
'range' => '200',
'search_string' => '\"admin\"',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts" . "?" . 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/client/[CLIENTID]/contacts"
params = {
"index": "0",
"range": "200",
"search_string": "\\"admin\\""
}
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, "0", 0);
char *enc_range = curl_easy_escape(curl, "200", 0);
char *enc_search_string = curl_easy_escape(curl, "\\\"admin\\\"", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts?index=%s&range=%s&search_string=%s", enc_index, enc_range, enc_search_string);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_search_string);
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"] = "0";
query["range"] = "200";
query["search_string"] = "\\"admin\\"";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts") { 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, "0", 0);
char* enc_range = curl_easy_escape(curl, "200", 0);
char* enc_search_string = curl_easy_escape(curl, "\\\"admin\\\"", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts";
url += "?index=" + std::string(enc_index);
url += "&range=" + std::string(enc_range);
url += "&search_string=" + std::string(enc_search_string);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_search_string);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-index (java.net.URLEncoder/encode "0" "UTF-8")
enc-range (java.net.URLEncoder/encode "200" "UTF-8")
enc-search_string (java.net.URLEncoder/encode "\\"admin\\"" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts" "?index=" enc-index "&range=" enc-range "&search_string=" enc-search_string)]
(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/client/[CLIENTID]/contacts", nil)
q := req.URL.Query()
q.Add("index", "0")
q.Add("range", "200")
q.Add("search_string", "\\"admin\\"")
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/client/[CLIENTID]/contacts?index=0&range=200&search_string=%5C%22admin%5C%22 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/client/[CLIENTID]/contacts");
uriBuilder.addParameter("index", "0");
uriBuilder.addParameter("range", "200");
uriBuilder.addParameter("search_string", "\\"admin\\"");
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/client/[CLIENTID]/contacts';
const params = new URLSearchParams({
'index': '0',
'range': '200',
'search_string': '\"admin\"'
});
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 = "0"
range = "200"
search_string = "\"admin\""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/client/[CLIENTID]/contacts".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("index", "0")
urlBuilder.addQueryParameter("range", "200")
urlBuilder.addQueryParameter("search_string", "\\"admin\\"")
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 = [@"0" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"200" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_string = [@"\\\"admin\\\"" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts?index=%@&range=%@&search_string=%@", encodedIndex, encodedRange, encodedSearch_string];
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 "0" in
let enc_range = Uri.pct_encode "200" in
let enc_search_string = Uri.pct_encode "\\"admin\\"" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts" ^ "?index=" ^ enc_index ^ "&range=" ^ enc_range ^ "&search_string=" ^ enc_search_string) 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 = "0"
range = "200"
search_string = "\`"admin\`""
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/client/[CLIENTID]/contacts" + "?" + $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/client/[CLIENTID]/contacts"
params <- list(
index = "0",
range = "200",
search_string = "\\"admin\\""
)
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/client/[CLIENTID]/contacts")!
components.queryItems = [
URLQueryItem(name: "index", value: "0"),
URLQueryItem(name: "range", value: "200"),
URLQueryItem(name: "search_string", value: "\\"admin\\"")
]
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
Associate existing contacts with a project.
OAuth Scope:
ZohoProjects.users.CREATE
Parameter
JSONArray
Enter the contact 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/projects/1752587000000097024/contacts' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'contactIds = "[\"2723806000097687013\"]"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts";
params = Map();
params.put("contactIds", "["2723806000097687013"]");
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/contacts');
url.searchParams.append('contactIds', '[\"2723806000097687013\"]');
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/contacts")
params = {
"contactIds" => "[\\"2723806000097687013\\"]"
}
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 = [
'contactIds' => '[\"2723806000097687013\"]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" . "?" . 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/contacts"
params = {
"contactIds": "[\\"2723806000097687013\\"]"
}
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_contactIds = curl_easy_escape(curl, "[\\\"2723806000097687013\\\"]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts?contactIds=%s", enc_contactIds);
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_contactIds);
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["contactIds"] = "[\\"2723806000097687013\\"]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts") { 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_contactIds = curl_easy_escape(curl, "[\\\"2723806000097687013\\\"]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts";
url += "?contactIds=" + std::string(enc_contactIds);
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_contactIds);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-contactIds (java.net.URLEncoder/encode "[\\"2723806000097687013\\"]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" "?contactIds=" enc-contactIds)]
(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/contacts", nil)
q := req.URL.Query()
q.Add("contactIds", "[\\"2723806000097687013\\"]")
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/contacts?contactIds=%5B%5C%222723806000097687013%5C%22%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/projects/1752587000000097024/contacts");
uriBuilder.addParameter("contactIds", "[\\"2723806000097687013\\"]");
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/contacts';
const params = new URLSearchParams({
'contactIds': '[\"2723806000097687013\"]'
});
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));
contactIds = "[\"2723806000097687013\"]"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/contacts".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("contactIds", "[\\"2723806000097687013\\"]")
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 *encodedContactIds = [@"[\\\"2723806000097687013\\\"]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts?contactIds=%@", encodedContactIds];
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_contactIds = Uri.pct_encode "[\\"2723806000097687013\\"]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" ^ "?contactIds=" ^ enc_contactIds) 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 = @{
contactIds = "[\`"2723806000097687013\`"]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" + "?" + $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/contacts"
params <- list(
contactIds = "[\\"2723806000097687013\\"]"
)
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/contacts")!
components.queryItems = [
URLQueryItem(name: "contactIds", value: "[\\"2723806000097687013\\"]")
]
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
Disassociate a contact from a project.
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/projects/1752587000000097024/contacts/[CONTACTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts/[CONTACTID]";
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/contacts/[CONTACTID]');
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/contacts/[CONTACTID]")
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/contacts/[CONTACTID]";
$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/contacts/[CONTACTID]"
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]"
{: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/contacts/[CONTACTID]", 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/contacts/[CONTACTID] 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/contacts/[CONTACTID]");
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/contacts/[CONTACTID]';
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/contacts/[CONTACTID]")
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/contacts/[CONTACTID]"];
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/contacts/[CONTACTID]" 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/contacts/[CONTACTID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts/[CONTACTID]"
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/contacts/[CONTACTID]")!
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 contacts from a project.
OAuth Scope:
ZohoProjects.users.DELETE
Parameter
JSONArray
Enter the contact 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/projects/1752587000000097024/contacts?contactIds=%5B%5C%222723806000097687013%5C%22%5D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts";
params = Map();
params.put("contactIds", "["2723806000097687013"]");
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/contacts');
url.searchParams.append('contactIds', '[\"2723806000097687013\"]');
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/contacts")
params = {
"contactIds" => "[\\"2723806000097687013\\"]"
}
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 = [
'contactIds' => '[\"2723806000097687013\"]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" . "?" . 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/contacts"
params = {
"contactIds": "[\\"2723806000097687013\\"]"
}
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_contactIds = curl_easy_escape(curl, "[\\\"2723806000097687013\\\"]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts?contactIds=%s", enc_contactIds);
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_contactIds);
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["contactIds"] = "[\\"2723806000097687013\\"]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts") { 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_contactIds = curl_easy_escape(curl, "[\\\"2723806000097687013\\\"]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts";
url += "?contactIds=" + std::string(enc_contactIds);
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_contactIds);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-contactIds (java.net.URLEncoder/encode "[\\"2723806000097687013\\"]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" "?contactIds=" enc-contactIds)]
(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/contacts", nil)
q := req.URL.Query()
q.Add("contactIds", "[\\"2723806000097687013\\"]")
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/contacts?contactIds=%5B%5C%222723806000097687013%5C%22%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/projects/1752587000000097024/contacts");
uriBuilder.addParameter("contactIds", "[\\"2723806000097687013\\"]");
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/contacts';
const params = new URLSearchParams({
'contactIds': '[\"2723806000097687013\"]'
});
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));
contactIds = "[\"2723806000097687013\"]"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/contacts".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("contactIds", "[\\"2723806000097687013\\"]")
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 *encodedContactIds = [@"[\\\"2723806000097687013\\\"]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts?contactIds=%@", encodedContactIds];
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_contactIds = Uri.pct_encode "[\\"2723806000097687013\\"]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" ^ "?contactIds=" ^ enc_contactIds) 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 = @{
contactIds = "[\`"2723806000097687013\`"]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/contacts" + "?" + $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/contacts"
params <- list(
contactIds = "[\\"2723806000097687013\\"]"
)
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/contacts")!
components.queryItems = [
URLQueryItem(name: "contactIds", value: "[\\"2723806000097687013\\"]")
]
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 tag related operations within Zoho Projects. Use this API to create, update, associate, and delete tags for different modules and projects.
Retrieve all tags from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tags.READ
Query Parameter
int
Enter the page number to retrieve.
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/tags?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%22%5B170876000008279193%5D%22%7D%5D%2C%22pattern%22%3A%221%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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/tags');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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/tags")
params = {
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags" . "?" . 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/tags"
params = {
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/tags?page=%s&per_page=%s&\"filter\"=%s", 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_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["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/tags") { 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\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags";
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_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-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\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/tags" "?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/tags", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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/tags?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%22%5B170876000008279193%5D%22%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/tags");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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/tags';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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"
"filter" = {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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/tags".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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 *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/tags?page=%@&per_page=%@&"filter"=%@", 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_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/tags" ^ "?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 = @{
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"criteria_condition`":`"contains`",`"value`":`"[170876000008279193]`"}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tags"
params <- list(
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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/tags")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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
Create new tags in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tags.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/tags' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form '"tags" = [{"name":"updatedtagadmin","color_class":"#7dcf7b"}]'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags";
params = Map();
params.put("tags", [{"name":"updatedtagadmin","color_class":"#7dcf7b"}]);
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/tags');
url.searchParams.append('"tags"', '[{"name":"updatedtagadmin","color_class":"#7dcf7b"}]');
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/tags")
params = {
""tags"" => "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]"
}
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 = [
'"tags"' => '[{"name":"updatedtagadmin","color_class":"#7dcf7b"}]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags" . "?" . 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/tags"
params = {
""tags"": "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]"
}
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_"tags" = curl_easy_escape(curl, "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/tags?\"tags\"=%s", enc_"tags");
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_"tags");
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[""tags""] = "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/tags") { 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_"tags" = curl_easy_escape(curl, "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags";
url += "?"tags"=" + std::string(enc_"tags");
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_"tags");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-"tags" (java.net.URLEncoder/encode "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/tags" "?"tags"=" enc-"tags")]
(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/tags", nil)
q := req.URL.Query()
q.Add(""tags"", "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]")
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/tags?%22tags%22=%5B%7B%22name%22%3A%22updatedtagadmin%22%2C%22color_class%22%3A%22%237dcf7b%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/tags");
uriBuilder.addParameter(""tags"", "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]");
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/tags';
const params = new URLSearchParams({
'"tags"': '[{"name":"updatedtagadmin","color_class":"#7dcf7b"}]'
});
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));
"tags" = [{"name":"updatedtagadmin","color_class":"#7dcf7b"}]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/tags".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""tags"", "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]")
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"tags" = [@"[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/tags?"tags"=%@", encoded"tags"];
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_"tags" = Uri.pct_encode "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/tags" ^ "?"tags"=" ^ enc_"tags") 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 = @{
"tags" = "[{`"name`":`"updatedtagadmin`",`"color_class`":`"#7dcf7b`"}]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tags"
params <- list(
"tags" = "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]"
)
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/tags")!
components.queryItems = [
URLQueryItem(name: ""tags"", value: "[{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}]")
]
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
Update a tag in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tags.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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"updatedtagadmin","color_class":"#7dcf7b"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]";
params = Map();
params.put("name", "updatedtagadmin");
params.put("color_class", "#7dcf7b");
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/tags/[TAGID]');
const payload = JSON.stringify({"name":"updatedtagadmin","color_class":"#7dcf7b"});
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/tags/[TAGID]")
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":"updatedtagadmin","color_class":"#7dcf7b"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"updatedtagadmin","color_class":"#7dcf7b"}',
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/tags/[TAGID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"updatedtagadmin","color_class":"#7dcf7b"}'
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/tags/[TAGID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}");
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/tags/[TAGID]");
request.Content = new StringContent(
@"{""name"":""updatedtagadmin"",""color_class"":""#7dcf7b""}",
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/tags/[TAGID]");
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\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}");
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/tags/[TAGID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]", 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/tags/[TAGID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"updatedtagadmin","color_class":"#7dcf7b"}
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/tags/[TAGID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}";
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/tags/[TAGID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"updatedtagadmin","color_class":"#7dcf7b"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"updatedtagadmin","color_class":"#7dcf7b"}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/tags/[TAGID]")
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":"updatedtagadmin","color_class":"#7dcf7b"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]"];
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\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}" 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/tags/[TAGID]" 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":"updatedtagadmin","color_class":"#7dcf7b"}|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":"updatedtagadmin","color_class":"#7dcf7b"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"updatedtagadmin\",\"color_class\":\"#7dcf7b\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]")!
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":"updatedtagadmin","color_class":"#7dcf7b"}
""".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 tag from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tags.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/tags/[TAGID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]";
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/tags/[TAGID]');
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/tags/[TAGID]")
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/tags/[TAGID]";
$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/tags/[TAGID]"
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/tags/[TAGID]");
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/tags/[TAGID]");
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/tags/[TAGID]");
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/tags/[TAGID]"
{: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/tags/[TAGID]", 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/tags/[TAGID] 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/tags/[TAGID]");
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/tags/[TAGID]';
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/tags/[TAGID]")
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/tags/[TAGID]"];
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/tags/[TAGID]" 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/tags/[TAGID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/tags/[TAGID]"
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/tags/[TAGID]")!
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
Retrieve tags from a project.
OAuth Scope:
ZohoProjects.tags.READ
Query Parameter
int
Enter the page number to retrieve.
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/tags?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%22%5B170876000008279193%5D%22%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/tags";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("filter", {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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/tags');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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/tags")
params = {
"page" => "1",
"per_page" => "10",
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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',
'"filter"' => '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"pattern":"1"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags" . "?" . 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/tags"
params = {
"page": "1",
"per_page": "10",
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags?page=%s&per_page=%s&\"filter\"=%s", 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_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["page"] = "1";
query["per_page"] = "10";
query[""filter""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags") { 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\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags";
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_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-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\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags" "?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/projects/1752587000000097024/tags", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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/tags?page=1&per_page=10&%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%22%5B170876000008279193%5D%22%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/tags");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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/tags';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'"filter"': '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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"
"filter" = {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":"[170876000008279193]"}],"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/tags".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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 *encoded"filter" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags?page=%@&per_page=%@&"filter"=%@", 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_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_"filter" = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"pattern\":\"1\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags" ^ "?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 = @{
page = "1"
per_page = "10"
"filter" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"criteria_condition`":`"contains`",`"value`":`"[170876000008279193]`"}],`"pattern`":`"1`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags" + "?" + $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/tags"
params <- list(
page = "1",
per_page = "10",
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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/tags")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":\"[170876000008279193]\"}],\"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
Associate tags with a module in a project. Note: This API will replace the current associated tags with the new tag IDs if the previous tag IDs are not included in the request.
OAuth Scope:
ZohoProjects.tags.UPDATE
Parameter
String
requiredEnter the tag ID.
String
requiredEnter the module ID.
int
requiredEnter the module type.Accepted values: 2(Project), 3(Milestone), 4(Tasklist), 5(Task), 6(Issues), 7(Forum), 8(Status).
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/tags/associate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'tag_id = "23806000097545166"'
--form 'entity_id = "23806000097546097"'
--form 'entityType = "5"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate";
params = Map();
params.put("tag_id", "23806000097545166");
params.put("entity_id", "23806000097546097");
params.put("entityType", "5");
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/tags/associate');
url.searchParams.append('tag_id', '23806000097545166');
url.searchParams.append('entity_id', '23806000097546097');
url.searchParams.append('entityType', '5');
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/tags/associate")
params = {
"tag_id" => "23806000097545166",
"entity_id" => "23806000097546097",
"entityType" => "5"
}
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 = [
'tag_id' => '23806000097545166',
'entity_id' => '23806000097546097',
'entityType' => '5',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate" . "?" . 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/tags/associate"
params = {
"tag_id": "23806000097545166",
"entity_id": "23806000097546097",
"entityType": "5"
}
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_tag_id = curl_easy_escape(curl, "23806000097545166", 0);
char *enc_entity_id = curl_easy_escape(curl, "23806000097546097", 0);
char *enc_entityType = curl_easy_escape(curl, "5", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate?tag_id=%s&entity_id=%s&entityType=%s", enc_tag_id, enc_entity_id, enc_entityType);
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_tag_id);
curl_free(enc_entity_id);
curl_free(enc_entityType);
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["tag_id"] = "23806000097545166";
query["entity_id"] = "23806000097546097";
query["entityType"] = "5";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate") { 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_tag_id = curl_easy_escape(curl, "23806000097545166", 0);
char* enc_entity_id = curl_easy_escape(curl, "23806000097546097", 0);
char* enc_entityType = curl_easy_escape(curl, "5", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate";
url += "?tag_id=" + std::string(enc_tag_id);
url += "&entity_id=" + std::string(enc_entity_id);
url += "&entityType=" + std::string(enc_entityType);
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_tag_id);
curl_free(enc_entity_id);
curl_free(enc_entityType);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-tag_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
enc-entity_id (java.net.URLEncoder/encode "23806000097546097" "UTF-8")
enc-entityType (java.net.URLEncoder/encode "5" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate" "?tag_id=" enc-tag_id "&entity_id=" enc-entity_id "&entityType=" enc-entityType)]
(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/tags/associate", nil)
q := req.URL.Query()
q.Add("tag_id", "23806000097545166")
q.Add("entity_id", "23806000097546097")
q.Add("entityType", "5")
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/tags/associate?tag_id=23806000097545166&entity_id=23806000097546097&entityType=5 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/tags/associate");
uriBuilder.addParameter("tag_id", "23806000097545166");
uriBuilder.addParameter("entity_id", "23806000097546097");
uriBuilder.addParameter("entityType", "5");
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/tags/associate';
const params = new URLSearchParams({
'tag_id': '23806000097545166',
'entity_id': '23806000097546097',
'entityType': '5'
});
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));
tag_id = "23806000097545166"
entity_id = "23806000097546097"
entityType = "5"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/tags/associate".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("tag_id", "23806000097545166")
urlBuilder.addQueryParameter("entity_id", "23806000097546097")
urlBuilder.addQueryParameter("entityType", "5")
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 *encodedTag_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntity_id = [@"23806000097546097" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntityType = [@"5" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate?tag_id=%@&entity_id=%@&entityType=%@", encodedTag_id, encodedEntity_id, encodedEntityType];
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_tag_id = Uri.pct_encode "23806000097545166" in
let enc_entity_id = Uri.pct_encode "23806000097546097" in
let enc_entityType = Uri.pct_encode "5" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate" ^ "?tag_id=" ^ enc_tag_id ^ "&entity_id=" ^ enc_entity_id ^ "&entityType=" ^ enc_entityType) 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 = @{
tag_id = "23806000097545166"
entity_id = "23806000097546097"
entityType = "5"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/associate" + "?" + $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/tags/associate"
params <- list(
tag_id = "23806000097545166",
entity_id = "23806000097546097",
entityType = "5"
)
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/tags/associate")!
components.queryItems = [
URLQueryItem(name: "tag_id", value: "23806000097545166"),
URLQueryItem(name: "entity_id", value: "23806000097546097"),
URLQueryItem(name: "entityType", value: "5")
]
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
Remove associated tags from a module in a project.
OAuth Scope:
ZohoProjects.tags.UPDATE
Parameter
long
requiredEnter the tag ID.
long
requiredEnter the module ID.
int
requiredEnter the module type.Accepted values: 2(Project), 3(Milestone), 4(Tasklist), 5(Task), 6(Issues), 7(Forum), 8(Status).
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/tags/dissociate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'tag_id = "23806000097545166"'
--form 'entity_id = "23806000097546097"'
--form 'entityType = "5"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate";
params = Map();
params.put("tag_id", "23806000097545166");
params.put("entity_id", "23806000097546097");
params.put("entityType", "5");
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/tags/dissociate');
url.searchParams.append('tag_id', '23806000097545166');
url.searchParams.append('entity_id', '23806000097546097');
url.searchParams.append('entityType', '5');
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/tags/dissociate")
params = {
"tag_id" => "23806000097545166",
"entity_id" => "23806000097546097",
"entityType" => "5"
}
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 = [
'tag_id' => '23806000097545166',
'entity_id' => '23806000097546097',
'entityType' => '5',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate" . "?" . 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/tags/dissociate"
params = {
"tag_id": "23806000097545166",
"entity_id": "23806000097546097",
"entityType": "5"
}
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_tag_id = curl_easy_escape(curl, "23806000097545166", 0);
char *enc_entity_id = curl_easy_escape(curl, "23806000097546097", 0);
char *enc_entityType = curl_easy_escape(curl, "5", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate?tag_id=%s&entity_id=%s&entityType=%s", enc_tag_id, enc_entity_id, enc_entityType);
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_tag_id);
curl_free(enc_entity_id);
curl_free(enc_entityType);
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["tag_id"] = "23806000097545166";
query["entity_id"] = "23806000097546097";
query["entityType"] = "5";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate") { 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_tag_id = curl_easy_escape(curl, "23806000097545166", 0);
char* enc_entity_id = curl_easy_escape(curl, "23806000097546097", 0);
char* enc_entityType = curl_easy_escape(curl, "5", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate";
url += "?tag_id=" + std::string(enc_tag_id);
url += "&entity_id=" + std::string(enc_entity_id);
url += "&entityType=" + std::string(enc_entityType);
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_tag_id);
curl_free(enc_entity_id);
curl_free(enc_entityType);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-tag_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
enc-entity_id (java.net.URLEncoder/encode "23806000097546097" "UTF-8")
enc-entityType (java.net.URLEncoder/encode "5" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate" "?tag_id=" enc-tag_id "&entity_id=" enc-entity_id "&entityType=" enc-entityType)]
(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/tags/dissociate", nil)
q := req.URL.Query()
q.Add("tag_id", "23806000097545166")
q.Add("entity_id", "23806000097546097")
q.Add("entityType", "5")
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/tags/dissociate?tag_id=23806000097545166&entity_id=23806000097546097&entityType=5 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/tags/dissociate");
uriBuilder.addParameter("tag_id", "23806000097545166");
uriBuilder.addParameter("entity_id", "23806000097546097");
uriBuilder.addParameter("entityType", "5");
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/tags/dissociate';
const params = new URLSearchParams({
'tag_id': '23806000097545166',
'entity_id': '23806000097546097',
'entityType': '5'
});
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));
tag_id = "23806000097545166"
entity_id = "23806000097546097"
entityType = "5"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/tags/dissociate".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("tag_id", "23806000097545166")
urlBuilder.addQueryParameter("entity_id", "23806000097546097")
urlBuilder.addQueryParameter("entityType", "5")
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 *encodedTag_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntity_id = [@"23806000097546097" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntityType = [@"5" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate?tag_id=%@&entity_id=%@&entityType=%@", encodedTag_id, encodedEntity_id, encodedEntityType];
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_tag_id = Uri.pct_encode "23806000097545166" in
let enc_entity_id = Uri.pct_encode "23806000097546097" in
let enc_entityType = Uri.pct_encode "5" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate" ^ "?tag_id=" ^ enc_tag_id ^ "&entity_id=" ^ enc_entity_id ^ "&entityType=" ^ enc_entityType) 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 = @{
tag_id = "23806000097545166"
entity_id = "23806000097546097"
entityType = "5"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/tags/dissociate" + "?" + $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/tags/dissociate"
params <- list(
tag_id = "23806000097545166",
entity_id = "23806000097546097",
entityType = "5"
)
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/tags/dissociate")!
components.queryItems = [
URLQueryItem(name: "tag_id", value: "23806000097545166"),
URLQueryItem(name: "entity_id", value: "23806000097546097"),
URLQueryItem(name: "entityType", value: "5")
]
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 module covers operations related to the team folder. Use this API to retrieve, create, associate, disassociate, or delete the team folder.
Retrieve the team folder or folder details from a project.
OAuth Scope:
ZohoProjects.documents.READ, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
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/documents' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents";
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/documents');
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/documents")
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/documents";
$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/documents"
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/documents");
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/documents");
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/documents");
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/documents"
{: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/documents", 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/documents 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/documents");
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/documents';
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/documents")
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/documents"];
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/documents" 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/documents" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents"
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/documents")!
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
FORBIDDEN HTTP 403
This module covers operations related to the team folder. Use this API to create, associate, disassociate, get, and delete the team folder.
Retrieve the team folder details of a project.
OAuth Scope:
ZohoProjects.documents.READ, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
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/documents/teamfolder/[TEAMFOLDERID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]";
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/documents/teamfolder/[TEAMFOLDERID]');
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/documents/teamfolder/[TEAMFOLDERID]")
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/documents/teamfolder/[TEAMFOLDERID]";
$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/documents/teamfolder/[TEAMFOLDERID]"
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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]"
{: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/documents/teamfolder/[TEAMFOLDERID]", 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/documents/teamfolder/[TEAMFOLDERID] 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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]';
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/documents/teamfolder/[TEAMFOLDERID]")
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/documents/teamfolder/[TEAMFOLDERID]"];
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/documents/teamfolder/[TEAMFOLDERID]" 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/documents/teamfolder/[TEAMFOLDERID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]"
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/documents/teamfolder/[TEAMFOLDERID]")!
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
FORBIDDEN HTTP 403
Create a team folder in a project.
OAuth Scope:
ZohoProjects.documents.CREATE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
Parameter
String
requiredmax length : 50
Enter the name of the team folder.
String
max length : 200Enter the description.
JSONArray
requiredmax length : 10000
Enter the permission details for the team folder.
To get the default team folder permission, use the Get Project Team Folder/Folder 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/projects/1752587000000097024/documents/teamfolder' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder";
params = Map();
params.put("name", "Team Folder");
params.put("description", "Description of the Team Folder");
params.put("user_permissions", [{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]);
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/documents/teamfolder');
const payload = JSON.stringify({"name":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]});
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/documents/teamfolder")
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":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}',
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/documents/teamfolder"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
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/documents/teamfolder");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Team Folder\",\"description\":\"Description of the Team Folder\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/teamfolder");
request.Content = new StringContent(
@"{""name"":""Team Folder"",""description"":""Description of the Team Folder"",""user_permissions"":[{""workdrive_role"":""admin"",""users"":[{""zpuid"":""225955000000159234""}],""profiles"":[{""id"":""22595500000011234""}]}]}",
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/documents/teamfolder");
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\":\"Team Folder\",\"description\":\"Description of the Team Folder\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/teamfolder"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Team Folder\",\"description\":\"Description of the Team Folder\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Team Folder\",\"description\":\"Description of the Team Folder\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder", 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/documents/teamfolder HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
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/documents/teamfolder");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Team Folder\",\"description\":\"Description of the Team Folder\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}";
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/documents/teamfolder';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}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/documents/teamfolder")
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":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder"];
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\":\"Team Folder\",\"description\":\"Description of the Team Folder\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}" 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/documents/teamfolder" 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":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}|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":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Team Folder\",\"description\":\"Description of the Team Folder\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder")!
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":"Team Folder","description":"Description of the Team Folder","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
""".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_OPERATION HTTP 403
GUEST_AS_ADMIN HTTP 403
UNKNOWN_WORKDRIVE_ERROR HTTP 500
DUPLICATE_NAME_ERROR HTTP 409
Modify the details of a team folder in a project.
OAuth Scope:
ZohoProjects.documents.UPDATE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
Parameter
JSONArray
requiredmax length : 100000
array size : 0-10
Enter the permission details for the team folder.
To get the default team folder permission, use the Get Project Team Folder/Folder 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 PUT \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]";
params = Map();
params.put("user_permissions", [{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]);
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/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]');
const payload = JSON.stringify({"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]});
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/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]")
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 = '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}',
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/documents/teamfolder/[TEAMFOLDERID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
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/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]");
request.Content = new StringContent(
@"{""user_permissions"":[{""workdrive_role"":""admin"",""users"":[{""zpuid"":""225955000000159234""}],""profiles"":[{""id"":""22595500000011234""}]}]}",
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/documents/teamfolder/[TEAMFOLDERID]");
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, "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]", 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/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
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/documents/teamfolder/[TEAMFOLDERID]");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}";
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/documents/teamfolder/[TEAMFOLDERID]';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}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/documents/teamfolder/[TEAMFOLDERID]")
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("""{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]"];
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 = [@"{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}" 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/documents/teamfolder/[TEAMFOLDERID]" 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|{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}|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 = @'
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]")!
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 = """
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
""".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_OPERATION HTTP 403
RESOURCE_NOT_FOUND HTTP 404
UNKNOWN_WORKDRIVE_ERROR HTTP 500
PERMISSION_DENIED HTTP 500
Remove a team folder from a project.
OAuth Scope:
ZohoProjects.documents.DELETE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
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/documents/teamfolder/[TEAMFOLDERID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]";
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/documents/teamfolder/[TEAMFOLDERID]');
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/documents/teamfolder/[TEAMFOLDERID]")
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/documents/teamfolder/[TEAMFOLDERID]";
$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/documents/teamfolder/[TEAMFOLDERID]"
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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]"
{: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/documents/teamfolder/[TEAMFOLDERID]", 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/documents/teamfolder/[TEAMFOLDERID] 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/documents/teamfolder/[TEAMFOLDERID]");
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/documents/teamfolder/[TEAMFOLDERID]';
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/documents/teamfolder/[TEAMFOLDERID]")
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/documents/teamfolder/[TEAMFOLDERID]"];
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/documents/teamfolder/[TEAMFOLDERID]" 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/documents/teamfolder/[TEAMFOLDERID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]"
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/documents/teamfolder/[TEAMFOLDERID]")!
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
UNKNOWN_WORKDRIVE_ERROR HTTP 500
TEAM_FOLDER_DELETE_ERROR HTTP 500
Associate an existing team folder to a project.
OAuth Scope:
ZohoProjects.documents.UPDATE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
Parameter
JSONArray
requiredmax length : 10000
array size : 0-10
Enter team folder ID.
To get team folder details, use the Get Project Team Folder Details.
JSONArray
requiredmax length : 100000
array size : 0-10
Enter the permission details for the team folder.
To get the default team folder permission, use the Get Project Team Folder/Folder 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 PUT \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate";
params = Map();
params.put("workdrive_team_folder_ids", "we9i836cbd87259dd451cb7c382802145f029");
params.put("user_permissions", [{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]);
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/projects/1752587000000097024/documents/teamfolder/associate');
const payload = JSON.stringify({"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]});
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/projects/1752587000000097024/documents/teamfolder/associate")
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 = '{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}',
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/documents/teamfolder/associate"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
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/projects/1752587000000097024/documents/teamfolder/associate");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"workdrive_team_folder_ids\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/projects/1752587000000097024/documents/teamfolder/associate");
request.Content = new StringContent(
@"{""workdrive_team_folder_ids"":""we9i836cbd87259dd451cb7c382802145f029"",""user_permissions"":[{""workdrive_role"":""admin"",""users"":[{""zpuid"":""225955000000159234""}],""profiles"":[{""id"":""22595500000011234""}]}]}",
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/documents/teamfolder/associate");
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, "{\"workdrive_team_folder_ids\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/projects/1752587000000097024/documents/teamfolder/associate"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"workdrive_team_folder_ids\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"workdrive_team_folder_ids\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate", 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/projects/1752587000000097024/documents/teamfolder/associate HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
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/documents/teamfolder/associate");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"workdrive_team_folder_ids\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}";
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/documents/teamfolder/associate';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}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/documents/teamfolder/associate")
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("""{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate"];
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 = [@"{\"workdrive_team_folder_ids\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}" 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/documents/teamfolder/associate" 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|{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}|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 = @'
{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"workdrive_team_folder_ids\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/associate")!
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 = """
{"workdrive_team_folder_ids":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
""".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_OPERATION HTTP 403
ASSOCIATION_ALREADY_EXISTS HTTP 500
UNKNOWN_WORKDRIVE_ERROR HTTP 500
Disassociate team folder(s) from a project
OAuth Scope:
ZohoProjects.documents.DELETE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
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/documents/teamfolder/[TEAMFOLDERID]/disassociate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]/disassociate";
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/documents/teamfolder/[TEAMFOLDERID]/disassociate');
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/documents/teamfolder/[TEAMFOLDERID]/disassociate")
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/documents/teamfolder/[TEAMFOLDERID]/disassociate";
$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/documents/teamfolder/[TEAMFOLDERID]/disassociate"
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/documents/teamfolder/[TEAMFOLDERID]/disassociate");
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/documents/teamfolder/[TEAMFOLDERID]/disassociate");
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/documents/teamfolder/[TEAMFOLDERID]/disassociate");
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/documents/teamfolder/[TEAMFOLDERID]/disassociate"
{: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/documents/teamfolder/[TEAMFOLDERID]/disassociate", 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/documents/teamfolder/[TEAMFOLDERID]/disassociate 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/documents/teamfolder/[TEAMFOLDERID]/disassociate");
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/documents/teamfolder/[TEAMFOLDERID]/disassociate';
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/documents/teamfolder/[TEAMFOLDERID]/disassociate")
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/documents/teamfolder/[TEAMFOLDERID]/disassociate"];
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/documents/teamfolder/[TEAMFOLDERID]/disassociate" 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/documents/teamfolder/[TEAMFOLDERID]/disassociate" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/teamfolder/[TEAMFOLDERID]/disassociate"
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/documents/teamfolder/[TEAMFOLDERID]/disassociate")!
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
DEFAULT_FOLDER_DISASSOCIATED HTTP 500
UNKNOWN_WORKDRIVE_ERROR HTTP 500
This module covers all operations related to the folder. Use this API to create, associate, disassociate, and retrieve folder details.
Create a folder in a project.
OAuth Scope:
ZohoProjects.documents.CREATE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
Parameter
String
requiredmax length : 100
Enter the name of the folder.
String
requiredmax length : 200
Enter team folder/folder ID.
To get the folder id's, use the Get Project Team Folder/Folder Details.
JSONArray
requiredmax length : 10000
Enter the permission details for the folder.
To get the default folder permission, use the Get Project Team Folder/Folder 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/projects/1752587000000097024/documents/folders' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders";
params = Map();
params.put("name", "Team Folder");
params.put("parent_id", "we9i836cbd87259dd451cb7c382802145f029");
params.put("user_permissions", [{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]);
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/documents/folders');
const payload = JSON.stringify({"name":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]});
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/documents/folders")
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":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}',
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/documents/folders"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
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/documents/folders");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Team Folder\",\"parent_id\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/folders");
request.Content = new StringContent(
@"{""name"":""Team Folder"",""parent_id"":""we9i836cbd87259dd451cb7c382802145f029"",""user_permissions"":[{""workdrive_role"":""admin"",""users"":[{""zpuid"":""225955000000159234""}],""profiles"":[{""id"":""22595500000011234""}]}]}",
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/documents/folders");
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\":\"Team Folder\",\"parent_id\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/folders"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Team Folder\",\"parent_id\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Team Folder\",\"parent_id\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders", 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/documents/folders HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
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/documents/folders");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Team Folder\",\"parent_id\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}";
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/documents/folders';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}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/documents/folders")
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":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders"];
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\":\"Team Folder\",\"parent_id\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}" 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/documents/folders" 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":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}|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":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Team Folder\",\"parent_id\":\"we9i836cbd87259dd451cb7c382802145f029\",\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders")!
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":"Team Folder","parent_id":"we9i836cbd87259dd451cb7c382802145f029","user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
""".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_OPERATION HTTP 403
CUSTOMIZATION_LIMIT_REACHED HTTP 500
FOLDER_CREATE_ERROR HTTP 500
UNKNOWN_WORKDRIVE_ERROR HTTP 500
DUPLICATE_NAME_ERROR HTTP 409
Associate folder(s) to a project.
OAuth Scope:
ZohoProjects.documents.UPDATE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
Parameter
JSONArray
max length : 10000array size : 0-10
Enter the folder details.
JSONArray
requiredmax length : 100000
array size : 0-10
Enter the permission details for the folder.
To get the default folder permission, use the Get Project Team Folder/Folder 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/projects/1752587000000097024/documents/folders/associate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/associate";
params = Map();
params.put("workdrive_folders", [{"id":"22595500000011234","is_customized":true}]);
params.put("user_permissions", [{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]);
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/documents/folders/associate');
const payload = JSON.stringify({"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]});
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/documents/folders/associate")
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 = '{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/associate";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}',
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/documents/folders/associate"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
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/documents/folders/associate");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"workdrive_folders\":[{\"id\":\"22595500000011234\",\"is_customized\":true}],\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/folders/associate");
request.Content = new StringContent(
@"{""workdrive_folders"":[{""id"":""22595500000011234"",""is_customized"":true}],""user_permissions"":[{""workdrive_role"":""admin"",""users"":[{""zpuid"":""225955000000159234""}],""profiles"":[{""id"":""22595500000011234""}]}]}",
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/documents/folders/associate");
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, "{\"workdrive_folders\":[{\"id\":\"22595500000011234\",\"is_customized\":true}],\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/folders/associate"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"workdrive_folders\":[{\"id\":\"22595500000011234\",\"is_customized\":true}],\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"workdrive_folders\":[{\"id\":\"22595500000011234\",\"is_customized\":true}],\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/associate", 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/documents/folders/associate HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
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/documents/folders/associate");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"workdrive_folders\":[{\"id\":\"22595500000011234\",\"is_customized\":true}],\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}";
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/documents/folders/associate';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}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/documents/folders/associate")
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("""{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/associate"];
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 = [@"{\"workdrive_folders\":[{\"id\":\"22595500000011234\",\"is_customized\":true}],\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}" 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/documents/folders/associate" 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|{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}|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 = @'
{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/associate" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/associate"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"workdrive_folders\":[{\"id\":\"22595500000011234\",\"is_customized\":true}],\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/associate")!
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 = """
{"workdrive_folders":[{"id":"22595500000011234","is_customized":true}],"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
""".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_OPERATION HTTP 403
ASSOCIATION_ALREADY_EXISTS HTTP 500
CUSTOMIZATION_LIMIT_REACHED HTTP 500
UNKNOWN_WORKDRIVE_ERROR HTTP 500
ASSOCIATE_TEMPLATE_ERROR HTTP 500
Retrieve details of the folder details from a project.
OAuth Scope:
ZohoProjects.documents.READ, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
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/documents/folders/1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260";
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/documents/folders/1752587000000097260');
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/documents/folders/1752587000000097260")
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/documents/folders/1752587000000097260";
$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/documents/folders/1752587000000097260"
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/documents/folders/1752587000000097260");
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/documents/folders/1752587000000097260");
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/documents/folders/1752587000000097260");
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/documents/folders/1752587000000097260"
{: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/documents/folders/1752587000000097260", 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/documents/folders/1752587000000097260 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/documents/folders/1752587000000097260");
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/documents/folders/1752587000000097260';
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/documents/folders/1752587000000097260")
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/documents/folders/1752587000000097260"];
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/documents/folders/1752587000000097260" 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/documents/folders/1752587000000097260" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260"
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/documents/folders/1752587000000097260")!
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
FORBIDDEN HTTP 403
Modify folder details in a project.
OAuth Scope:
ZohoProjects.documents.UPDATE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
Parameter
JSONArray
requiredmax length : 100000
array size : 0-10
Enter the permission details for the folder.
To get the default folder permission, use the Get Project Team Folder/Folder 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260";
params = Map();
params.put("user_permissions", [{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]);
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/documents/folders/1752587000000097260');
const payload = JSON.stringify({"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]});
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/documents/folders/1752587000000097260")
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 = '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}',
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/documents/folders/1752587000000097260"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}'
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/documents/folders/1752587000000097260");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/folders/1752587000000097260");
request.Content = new StringContent(
@"{""user_permissions"":[{""workdrive_role"":""admin"",""users"":[{""zpuid"":""225955000000159234""}],""profiles"":[{""id"":""22595500000011234""}]}]}",
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/documents/folders/1752587000000097260");
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, "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}");
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/documents/folders/1752587000000097260"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260", 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/documents/folders/1752587000000097260 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
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/documents/folders/1752587000000097260");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}";
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/documents/folders/1752587000000097260';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}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/documents/folders/1752587000000097260")
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("""{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260"];
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 = [@"{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}" 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/documents/folders/1752587000000097260" 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|{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}|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 = @'
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"user_permissions\":[{\"workdrive_role\":\"admin\",\"users\":[{\"zpuid\":\"225955000000159234\"}],\"profiles\":[{\"id\":\"22595500000011234\"}]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260")!
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 = """
{"user_permissions":[{"workdrive_role":"admin","users":[{"zpuid":"225955000000159234"}],"profiles":[{"id":"22595500000011234"}]}]}
""".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_OPERATION HTTP 403
RESOURCE_NOT_FOUND HTTP 404
UNKNOWN_WORKDRIVE_ERROR HTTP 500
PERMISSION_DENIED HTTP 500
Disassociate folder(s) from a project.
OAuth Scope:
ZohoProjects.documents.DELETE, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
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/documents/folders/1752587000000097260/disassociate' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260/disassociate";
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/documents/folders/1752587000000097260/disassociate');
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/documents/folders/1752587000000097260/disassociate")
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/documents/folders/1752587000000097260/disassociate";
$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/documents/folders/1752587000000097260/disassociate"
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/documents/folders/1752587000000097260/disassociate");
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/documents/folders/1752587000000097260/disassociate");
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/documents/folders/1752587000000097260/disassociate");
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/documents/folders/1752587000000097260/disassociate"
{: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/documents/folders/1752587000000097260/disassociate", 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/documents/folders/1752587000000097260/disassociate 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/documents/folders/1752587000000097260/disassociate");
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/documents/folders/1752587000000097260/disassociate';
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/documents/folders/1752587000000097260/disassociate")
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/documents/folders/1752587000000097260/disassociate"];
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/documents/folders/1752587000000097260/disassociate" 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/documents/folders/1752587000000097260/disassociate" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/documents/folders/1752587000000097260/disassociate"
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/documents/folders/1752587000000097260/disassociate")!
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
DEFAULT_FOLDER_DISASSOCIATED HTTP 500
UNKNOWN_WORKDRIVE_ERROR HTTP 500
This module covers attachment related operations within Zoho Projects. Use this API to retrieve, upload, associate, or disassociate attachments for projects.
Retrieve attachment details from a project.
OAuth Scope:
ZohoProjects.portals.READ, WorkDrive.workspace.ALL,Workdrive.team.ALL,WorkDrive.files.ALL
Query Parameter
String
requiredEnter the module name.
Default Modules:project_comment,status,status_comment,milestone_comment,tasklist_comment,task,task_comment,bug,bug_resolution,bug_comment,event,event_comment,forum,forum_comment,announcement_comment,zoho_meeting_comment
For custom modules, use the Get List of Modules API with the filter is_customized = 'true' and use the returned 'api_name' value as the entity_type.
For comments under a custom module, use the format 'api_name'_cm_comment_
long
requiredEnter the entity 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/projects/1752587000000097024/attachments?entity_type=task&entity_id=1752587000000097299' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments";
params = Map();
params.put("entity_type", "task");
params.put("entity_id", "1752587000000097299");
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/attachments');
url.searchParams.append('entity_type', 'task');
url.searchParams.append('entity_id', '1752587000000097299');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments")
params = {
"entity_type" => "task",
"entity_id" => "1752587000000097299"
}
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 = [
'entity_type' => 'task',
'entity_id' => '1752587000000097299',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments" . "?" . 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/attachments"
params = {
"entity_type": "task",
"entity_id": "1752587000000097299"
}
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_entity_type = curl_easy_escape(curl, "task", 0);
char *enc_entity_id = curl_easy_escape(curl, "1752587000000097299", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments?entity_type=%s&entity_id=%s", enc_entity_type, enc_entity_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_entity_type);
curl_free(enc_entity_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["entity_type"] = "task";
query["entity_id"] = "1752587000000097299";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments") { 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_entity_type = curl_easy_escape(curl, "task", 0);
char* enc_entity_id = curl_easy_escape(curl, "1752587000000097299", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments";
url += "?entity_type=" + std::string(enc_entity_type);
url += "&entity_id=" + std::string(enc_entity_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_entity_type);
curl_free(enc_entity_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-entity_type (java.net.URLEncoder/encode "task" "UTF-8")
enc-entity_id (java.net.URLEncoder/encode "1752587000000097299" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments" "?entity_type=" enc-entity_type "&entity_id=" enc-entity_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/1752587000000097024/attachments", nil)
q := req.URL.Query()
q.Add("entity_type", "task")
q.Add("entity_id", "1752587000000097299")
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/attachments?entity_type=task&entity_id=1752587000000097299 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/attachments");
uriBuilder.addParameter("entity_type", "task");
uriBuilder.addParameter("entity_id", "1752587000000097299");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments';
const params = new URLSearchParams({
'entity_type': 'task',
'entity_id': '1752587000000097299'
});
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));
entity_type = "task"
entity_id = "1752587000000097299"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/attachments".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("entity_type", "task")
urlBuilder.addQueryParameter("entity_id", "1752587000000097299")
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 *encodedEntity_type = [@"task" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntity_id = [@"1752587000000097299" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments?entity_type=%@&entity_id=%@", encodedEntity_type, encodedEntity_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_entity_type = Uri.pct_encode "task" in
let enc_entity_id = Uri.pct_encode "1752587000000097299" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments" ^ "?entity_type=" ^ enc_entity_type ^ "&entity_id=" ^ enc_entity_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 = @{
entity_type = "task"
entity_id = "1752587000000097299"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments" + "?" + $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/attachments"
params <- list(
entity_type = "task",
entity_id = "1752587000000097299"
)
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/attachments")!
components.queryItems = [
URLQueryItem(name: "entity_type", value: "task"),
URLQueryItem(name: "entity_id", value: "1752587000000097299")
]
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
REQUIRED_PARAMETER_MISSING HTTP 400
Retrieve details of an attachment from 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/1752587000000097024/attachments/1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260";
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/attachments/1752587000000097260');
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/attachments/1752587000000097260")
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/attachments/1752587000000097260";
$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/attachments/1752587000000097260"
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/attachments/1752587000000097260");
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/attachments/1752587000000097260");
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/attachments/1752587000000097260");
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/attachments/1752587000000097260"
{: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/attachments/1752587000000097260", 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/attachments/1752587000000097260 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/attachments/1752587000000097260");
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/attachments/1752587000000097260';
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/attachments/1752587000000097260")
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/attachments/1752587000000097260"];
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/attachments/1752587000000097260" 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/attachments/1752587000000097260" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260"
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/attachments/1752587000000097260")!
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
Upload attachments to the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.CREATE, WorkDrive.workspace.ALL,WorkDrive.files.ALL
Parameter
file
requiredmax size : 125mb
limit : 0-10
Specify the file or files to be uploaded.
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/attachments' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
--form 'upload_file=@/path/to/file' \
--form '"attachment_details" = {"location_details":{"folder_id":"170876000015521124","project_id":"170876000015521678"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments";
fileObj = invokeUrl
[
url: "/path/to/file"
type: GET
];
response = invokeUrl
[
url: url
type: POST
files: {"upload_file": fileObj}
connection: "projects"
];
info response;
const fs = require('fs');
const FormData = require('form-data');
const https = require('https');
const form = new FormData();
form.append('upload_file', fs.createReadStream('/path/to/file'));
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/attachments');
const options = {
hostname: url.hostname,
path: url.pathname,
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
...form.getHeaders()
}
};
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); });
form.pipe(req);
require 'net/http'
require 'uri'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/attachments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post::Multipart.new(url, {
"upload_file" => UploadIO.new(File.new("/path/to/file"), "application/octet-stream")
})
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments";
$postFields = [
'upload_file' => new CURLFile('/path/to/file'),
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $postFields,
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/attachments"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
files = {
"upload_file": open("/path/to/file", "rb")
}
response = requests.post(url, headers=headers, files=files)
print(response.json())
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
curl_mime *mime = curl_mime_init(curl);
curl_mimepart *part = curl_mime_addpart(mime);
curl_mime_name(part, "upload_file");
curl_mime_filedata(part, "/path/to/file");
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/attachments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_mime_free(mime);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var content = new MultipartFormDataContent();
var fileStream = File.OpenRead("/path/to/file");
content.Add(new StreamContent(fileStream), "upload_file", "file");
var request = new HttpRequestMessage(HttpMethod.Post, "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments") { Content = content };
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;
curl_mime* mime = curl_mime_init(curl);
curl_mimepart* part = curl_mime_addpart(mime);
curl_mime_name(part, "upload_file");
curl_mime_filedata(part, "/path/to/file");
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/attachments");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
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_mime_free(mime);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(require '[clojure.java.io :as io])
(def response
(client/post "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:multipart [{:name "upload_file"
:content (io/file "/path/to/file")}]}))
(println (:body response))
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
file, _ := os.Open("/path/to/file")
defer file.Close()
part, _ := writer.CreateFormFile("upload_file", "file")
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments", body)
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
req.Header.Add("Content-Type", writer.FormDataContentType())
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
respBody, _ := io.ReadAll(resp.Body)
fmt.Println(string(respBody))
}
POST https://projectsapi.zoho.com/api/v3/portal/739121528/attachments HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: multipart/form-data; boundary=----FormBoundary
------FormBoundary
Content-Disposition: form-data; name="upload_file"; filename="file"
Content-Type: application/octet-stream
[file content]
------FormBoundary--
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
HttpEntityEnclosingRequestBase httpRequest = new HttpPost("https://projectsapi.zoho.com/api/v3/portal/739121528/attachments");
httpRequest.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("upload_file", new File("/path/to/file"), ContentType.DEFAULT_BINARY, "file");
httpRequest.setEntity(builder.build());
HttpResponse response = httpclient.execute(httpRequest);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const formData = new FormData();
formData.append('upload_file', fileInput.files[0]);
fetch('https://projectsapi.zoho.com/api/v3/portal/739121528/attachments', {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
},
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{
"upload_file": "(binary file data)"
}import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import java.io.File
fun main() {
val client = OkHttpClient()
val file = File("/path/to/file")
val body = MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("upload_file", file.name, RequestBody.create(file, "application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://projectsapi.zoho.com/api/v3/portal/739121528/attachments")
.method("POST", body)
.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
.build()
val response = client.newCall(request).execute()
println(response.body?.string())
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/attachments"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSString *boundary = [[NSUUID UUID] UUIDString];
[request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
NSMutableData *body = [NSMutableData data];
NSData *fileData = [NSData dataWithContentsOfFile:@"/path/to/file"];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"upload_file\"; filename=\"file\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:fileData];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] 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/attachments" in
let file_content = Lwt_io.(with_file ~mode:Input "/path/to/file" read) in
let boundary = "----FormBoundary" in
let body_str =
"--" ^ boundary ^ "\r\n" ^
"Content-Disposition: form-data; name=\"upload_file\"; filename=\"file\"\r\n" ^
"Content-Type: application/octet-stream\r\n\r\n" ^
file_content ^ "\r\n" ^
"--" ^ boundary ^ "--\r\n" 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" ("multipart/form-data; boundary=" ^ boundary)
in
let body = Cohttp_lwt.Body.of_string body_str 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"
}
$form = @{
upload_file = Get-Item -Path "/path/to/file"
}
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments" -Method POST -Headers $headers -Form $form
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
body = list(
upload_file = upload_file("/path/to/file")
),
encode = "multipart"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/attachments")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let boundary = UUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
var body = Data()
let fileData = try! Data(contentsOf: URL(fileURLWithPath: "/path/to/file"))
body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"upload_file\"; filename=\"file\"\r\n".data(using: .utf8)!)
body.append("Content-Type: application/octet-stream\r\n\r\n".data(using: .utf8)!)
body.append(fileData)
body.append("\r\n".data(using: .utf8)!)
body.append("--\(boundary)--\r\n".data(using: .utf8)!)
request.httpBody = body
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
FILE_LIMIT_EXCEEDED HTTP 400
FILE_SIZE_EXCEEDED HTTP 413
INVALID_PARAMETER_VALUE HTTP 400
FORBIDDEN HTTP 403
REQUIRED_PARAMETER_MISSING HTTP 400
Associate an attachment to a module in a project.
OAuth Scope:
ZohoProjects.portals.CREATE, WorkDrive.workspace.ALL,WorkDrive.files.ALL
Parameter
String
requiredEnter the module name.
Default Modules:project_comment,status,status_comment,milestone_comment,tasklist_comment,task,task_comment,bug,bug_resolution,bug_comment,event,event_comment,forum,forum_comment,announcement_comment,zoho_meeting_comment
For custom modules, use the Get List of Modules API with the filter is_customized = 'true' and use the returned 'api_name' value as the entity_type.
For comments under a custom module, use the format 'api_name'_cm_comment_
long
requiredEnter the entity 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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'entity_type = "task"'
--form 'entity_id = "1752587000000097299"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260";
params = Map();
params.put("entity_type", "task");
params.put("entity_id", "1752587000000097299");
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/attachments/1752587000000097260');
url.searchParams.append('entity_type', 'task');
url.searchParams.append('entity_id', '1752587000000097299');
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/attachments/1752587000000097260")
params = {
"entity_type" => "task",
"entity_id" => "1752587000000097299"
}
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 = [
'entity_type' => 'task',
'entity_id' => '1752587000000097299',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" . "?" . 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/attachments/1752587000000097260"
params = {
"entity_type": "task",
"entity_id": "1752587000000097299"
}
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_entity_type = curl_easy_escape(curl, "task", 0);
char *enc_entity_id = curl_easy_escape(curl, "1752587000000097299", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260?entity_type=%s&entity_id=%s", enc_entity_type, enc_entity_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_entity_type);
curl_free(enc_entity_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["entity_type"] = "task";
query["entity_id"] = "1752587000000097299";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260") { 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_entity_type = curl_easy_escape(curl, "task", 0);
char* enc_entity_id = curl_easy_escape(curl, "1752587000000097299", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260";
url += "?entity_type=" + std::string(enc_entity_type);
url += "&entity_id=" + std::string(enc_entity_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_entity_type);
curl_free(enc_entity_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-entity_type (java.net.URLEncoder/encode "task" "UTF-8")
enc-entity_id (java.net.URLEncoder/encode "1752587000000097299" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" "?entity_type=" enc-entity_type "&entity_id=" enc-entity_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/attachments/1752587000000097260", nil)
q := req.URL.Query()
q.Add("entity_type", "task")
q.Add("entity_id", "1752587000000097299")
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/attachments/1752587000000097260?entity_type=task&entity_id=1752587000000097299 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/attachments/1752587000000097260");
uriBuilder.addParameter("entity_type", "task");
uriBuilder.addParameter("entity_id", "1752587000000097299");
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/attachments/1752587000000097260';
const params = new URLSearchParams({
'entity_type': 'task',
'entity_id': '1752587000000097299'
});
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));
entity_type = "task"
entity_id = "1752587000000097299"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/attachments/1752587000000097260".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("entity_type", "task")
urlBuilder.addQueryParameter("entity_id", "1752587000000097299")
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 *encodedEntity_type = [@"task" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntity_id = [@"1752587000000097299" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260?entity_type=%@&entity_id=%@", encodedEntity_type, encodedEntity_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_entity_type = Uri.pct_encode "task" in
let enc_entity_id = Uri.pct_encode "1752587000000097299" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" ^ "?entity_type=" ^ enc_entity_type ^ "&entity_id=" ^ enc_entity_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 = @{
entity_type = "task"
entity_id = "1752587000000097299"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" + "?" + $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/attachments/1752587000000097260"
params <- list(
entity_type = "task",
entity_id = "1752587000000097299"
)
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/attachments/1752587000000097260")!
components.queryItems = [
URLQueryItem(name: "entity_type", value: "task"),
URLQueryItem(name: "entity_id", value: "1752587000000097299")
]
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
FORBIDDEN HTTP 403
REQUIRED_PARAMETER_MISSING HTTP 400
Disassociate an attachment from a module in a project.
OAuth Scope:
ZohoProjects.portals.DELETE, WorkDrive.workspace.ALL,WorkDrive.files.ALL
Parameter
String
requiredEnter the module name.
Default Modules:project_comment,status,status_comment,milestone_comment,tasklist_comment,task,task_comment,bug,bug_resolution,bug_comment,event,event_comment,forum,forum_comment,announcement_comment,zoho_meeting_comment
For custom modules, use the Get List of Modules API with the filter is_customized = 'true' and use the returned 'api_name' value as the entity_type.
For comments under a custom module, use the format 'api_name'_cm_comment_
long
requiredEnter the entity 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/projects/1752587000000097024/attachments/1752587000000097260?entity_type=task&entity_id=1752587000000097299' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260";
params = Map();
params.put("entity_type", "task");
params.put("entity_id", "1752587000000097299");
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/attachments/1752587000000097260');
url.searchParams.append('entity_type', 'task');
url.searchParams.append('entity_id', '1752587000000097299');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260")
params = {
"entity_type" => "task",
"entity_id" => "1752587000000097299"
}
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 = [
'entity_type' => 'task',
'entity_id' => '1752587000000097299',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" . "?" . 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/attachments/1752587000000097260"
params = {
"entity_type": "task",
"entity_id": "1752587000000097299"
}
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_entity_type = curl_easy_escape(curl, "task", 0);
char *enc_entity_id = curl_easy_escape(curl, "1752587000000097299", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260?entity_type=%s&entity_id=%s", enc_entity_type, enc_entity_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, "DELETE");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_entity_type);
curl_free(enc_entity_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["entity_type"] = "task";
query["entity_id"] = "1752587000000097299";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260") { 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_entity_type = curl_easy_escape(curl, "task", 0);
char* enc_entity_id = curl_easy_escape(curl, "1752587000000097299", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260";
url += "?entity_type=" + std::string(enc_entity_type);
url += "&entity_id=" + std::string(enc_entity_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, "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_entity_type);
curl_free(enc_entity_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-entity_type (java.net.URLEncoder/encode "task" "UTF-8")
enc-entity_id (java.net.URLEncoder/encode "1752587000000097299" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" "?entity_type=" enc-entity_type "&entity_id=" enc-entity_id)]
(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/attachments/1752587000000097260", nil)
q := req.URL.Query()
q.Add("entity_type", "task")
q.Add("entity_id", "1752587000000097299")
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/attachments/1752587000000097260?entity_type=task&entity_id=1752587000000097299 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/attachments/1752587000000097260");
uriBuilder.addParameter("entity_type", "task");
uriBuilder.addParameter("entity_id", "1752587000000097299");
HttpUriRequest requestObj = new HttpDelete(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260';
const params = new URLSearchParams({
'entity_type': 'task',
'entity_id': '1752587000000097299'
});
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));
entity_type = "task"
entity_id = "1752587000000097299"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/attachments/1752587000000097260".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("entity_type", "task")
urlBuilder.addQueryParameter("entity_id", "1752587000000097299")
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 *encodedEntity_type = [@"task" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntity_id = [@"1752587000000097299" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260?entity_type=%@&entity_id=%@", encodedEntity_type, encodedEntity_id];
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_entity_type = Uri.pct_encode "task" in
let enc_entity_id = Uri.pct_encode "1752587000000097299" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" ^ "?entity_type=" ^ enc_entity_type ^ "&entity_id=" ^ enc_entity_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.delete ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
entity_type = "task"
entity_id = "1752587000000097299"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/attachments/1752587000000097260" + "?" + $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/attachments/1752587000000097260"
params <- list(
entity_type = "task",
entity_id = "1752587000000097299"
)
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/attachments/1752587000000097260")!
components.queryItems = [
URLQueryItem(name: "entity_type", value: "task"),
URLQueryItem(name: "entity_id", value: "1752587000000097299")
]
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
INVALID_PARAMETER_VALUE HTTP 400
FORBIDDEN HTTP 403
REQUIRED_PARAMETER_MISSING HTTP 400
This module covers operations related to dashboards within Zoho Projects. Use this API to generate, export, and retrieve dashboards.
To get the Dashboard details
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
long
Enter the Project ID
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/dashboards?project_id=23806000097545166&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards";
params = Map();
params.put("project_id", "23806000097545166");
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/dashboards');
url.searchParams.append('project_id', '23806000097545166');
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/dashboards")
params = {
"project_id" => "23806000097545166",
"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 = [
'project_id' => '23806000097545166',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards" . "?" . 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/dashboards"
params = {
"project_id": "23806000097545166",
"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_project_id = curl_easy_escape(curl, "23806000097545166", 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/dashboards?project_id=%s&page=%s&per_page=%s", enc_project_id, 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_project_id);
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["project_id"] = "23806000097545166";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards") { 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_project_id = curl_easy_escape(curl, "23806000097545166", 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/dashboards";
url += "?project_id=" + std::string(enc_project_id);
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_project_id);
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-project_id (java.net.URLEncoder/encode "23806000097545166" "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/dashboards" "?project_id=" enc-project_id "&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/dashboards", nil)
q := req.URL.Query()
q.Add("project_id", "23806000097545166")
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/dashboards?project_id=23806000097545166&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/dashboards");
uriBuilder.addParameter("project_id", "23806000097545166");
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/dashboards';
const params = new URLSearchParams({
'project_id': '23806000097545166',
'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));
project_id = "23806000097545166"
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/dashboards".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("project_id", "23806000097545166")
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 *encodedProject_id = [@"23806000097545166" 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/dashboards?project_id=%@&page=%@&per_page=%@", encodedProject_id, 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_project_id = Uri.pct_encode "23806000097545166" 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/dashboards" ^ "?project_id=" ^ enc_project_id ^ "&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 = @{
project_id = "23806000097545166"
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/dashboards" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards"
params <- list(
project_id = "23806000097545166",
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/dashboards")!
components.queryItems = [
URLQueryItem(name: "project_id", value: "23806000097545166"),
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
To get the dashboard 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/portal/739121528/dashboards/[DASHBOARDID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]";
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/dashboards/[DASHBOARDID]');
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/dashboards/[DASHBOARDID]")
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/dashboards/[DASHBOARDID]";
$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/dashboards/[DASHBOARDID]"
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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]"
{: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/dashboards/[DASHBOARDID]", 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/dashboards/[DASHBOARDID] 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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]';
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/dashboards/[DASHBOARDID]")
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/dashboards/[DASHBOARDID]"];
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/dashboards/[DASHBOARDID]" 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/dashboards/[DASHBOARDID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]"
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/dashboards/[DASHBOARDID]")!
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 Dashboard in Global
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredmax length : 200
Enter the name of the dashboard
String
max length : 10000Enter the description of the dashboard
String
Enter the access type Accepted values: all,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/dashboards' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("access_type", "-");
params.put("project", {"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/dashboards');
const payload = JSON.stringify({"name":"-","description":"-","access_type":"-","project":{"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/dashboards")
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":"-","access_type":"-","project":{"id":"4000000062001"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","access_type":"-","project":{"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/dashboards"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","access_type":"-","project":{"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/dashboards");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"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/dashboards");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""access_type"":""-"",""project"":{""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/dashboards");
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\":\"-\",\"access_type\":\"-\",\"project\":{\"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/dashboards"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"}}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards", 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/dashboards HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","access_type":"-","project":{"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/dashboards");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"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/dashboards';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","access_type":"-","project":{"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/dashboards")
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":"-","access_type":"-","project":{"id":"4000000062001"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards"];
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\":\"-\",\"access_type\":\"-\",\"project\":{\"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/dashboards" 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":"-","access_type":"-","project":{"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 = @'
{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards")!
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":"-","access_type":"-","project":{"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
To update the dashboard details
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
max length : 200Enter the name of the dashboard
String
max length : 10000Enter the description of the dashboard
String
Dashboard background theme
Accepted values: none,theme_1,theme_2,theme_3,theme_4,theme_5,theme_6,theme_7,theme_8,theme_9
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/dashboards/[DASHBOARDID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("project", {"id":"4000000062001"});
params.put("bg_theme", "-");
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/dashboards/[DASHBOARDID]');
const payload = JSON.stringify({"name":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"});
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/dashboards/[DASHBOARDID]")
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":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}',
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/dashboards/[DASHBOARDID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}'
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/dashboards/[DASHBOARDID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"bg_theme\":\"-\"}");
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/dashboards/[DASHBOARDID]");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""project"":{""id"":""4000000062001""},""bg_theme"":""-""}",
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/dashboards/[DASHBOARDID]");
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\":\"-\",\"description\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"bg_theme\":\"-\"}");
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/dashboards/[DASHBOARDID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"bg_theme\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"bg_theme\":\"-\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]", 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/dashboards/[DASHBOARDID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}
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/dashboards/[DASHBOARDID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"bg_theme\":\"-\"}";
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/dashboards/[DASHBOARDID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}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/dashboards/[DASHBOARDID]")
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":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]"];
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\":\"-\",\"description\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"bg_theme\":\"-\"}" 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/dashboards/[DASHBOARDID]" 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":{"id":"4000000062001"},"bg_theme":"-"}|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":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"bg_theme\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]")!
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":"-","description":"-","project":{"id":"4000000062001"},"bg_theme":"-"}
""".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
To clone the dashboard
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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/clone' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/clone" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/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
To move the dashboard
OAuth Scope:
ZohoProjects.portals.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/dashboards/[DASHBOARDID]/move' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"to_project":{"id":"4000000062001"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/move";
params = Map();
params.put("to_project", {"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/dashboards/[DASHBOARDID]/move');
const payload = JSON.stringify({"to_project":{"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/dashboards/[DASHBOARDID]/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":{"id":"4000000062001"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/move";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"to_project":{"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/dashboards/[DASHBOARDID]/move"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"to_project":{"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/dashboards/[DASHBOARDID]/move");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"to_project\":{\"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/dashboards/[DASHBOARDID]/move");
request.Content = new StringContent(
@"{""to_project"":{""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/dashboards/[DASHBOARDID]/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\":{\"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/dashboards/[DASHBOARDID]/move"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"to_project\":{\"id\":\"4000000062001\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"to_project\":{\"id\":\"4000000062001\"}}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/move HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"to_project":{"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/dashboards/[DASHBOARDID]/move");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"to_project\":{\"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/dashboards/[DASHBOARDID]/move';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"to_project":{"id":"4000000062001"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"to_project":{"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/dashboards/[DASHBOARDID]/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":{"id":"4000000062001"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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\":{\"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/dashboards/[DASHBOARDID]/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":{"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 = @'
{"to_project":{"id":"4000000062001"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/move" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/move"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"to_project\":{\"id\":\"4000000062001\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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":{"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
To share the dashboard to the users
OAuth Scope:
Parameter
String
Access level of the Portal/Project Users
String
Access level of the Client Users
JSONArray
Access level of the shared Users in json array
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
Sample Input
Sample Response
To reorder the dashboard widgets
OAuth Scope:
ZohoProjects.portals.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/dashboards/[DASHBOARDID]/reorder' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/reorder";
params = Map();
params.put("widgets", [{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]);
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/dashboards/[DASHBOARDID]/reorder');
const payload = JSON.stringify({"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]});
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/dashboards/[DASHBOARDID]/reorder")
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 = '{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/reorder";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}',
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/dashboards/[DASHBOARDID]/reorder"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}'
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/dashboards/[DASHBOARDID]/reorder");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"widgets\":[{\"id\":\"4000000062001\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}}]}");
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/dashboards/[DASHBOARDID]/reorder");
request.Content = new StringContent(
@"{""widgets"":[{""id"":""4000000062001"",""widget_configuration"":{""x"":""-"",""y"":""-"",""h"":""-"",""w"":""-""}}]}",
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/dashboards/[DASHBOARDID]/reorder");
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, "{\"widgets\":[{\"id\":\"4000000062001\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}}]}");
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/dashboards/[DASHBOARDID]/reorder"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"widgets\":[{\"id\":\"4000000062001\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"widgets\":[{\"id\":\"4000000062001\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/reorder", 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/dashboards/[DASHBOARDID]/reorder HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}
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/dashboards/[DASHBOARDID]/reorder");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"widgets\":[{\"id\":\"4000000062001\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}}]}";
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/dashboards/[DASHBOARDID]/reorder';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}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/dashboards/[DASHBOARDID]/reorder")
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("""{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/reorder"];
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 = [@"{\"widgets\":[{\"id\":\"4000000062001\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}}]}" 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/dashboards/[DASHBOARDID]/reorder" 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|{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}|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 = @'
{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/reorder" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/reorder"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"widgets\":[{\"id\":\"4000000062001\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/reorder")!
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 = """
{"widgets":[{"id":"4000000062001","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"}}]}
""".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
Export Dashboard
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
max length : 50Specify the access code
String
Export View type
Accepted values: layout_view,full_view
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/dashboards/[DASHBOARDID]/export' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"access_code":"-","view_type":"date"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/export";
params = Map();
params.put("access_code", "-");
params.put("view_type", "date");
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/dashboards/[DASHBOARDID]/export');
const payload = JSON.stringify({"access_code":"-","view_type":"date"});
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/dashboards/[DASHBOARDID]/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 = '{"access_code":"-","view_type":"date"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/export";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"access_code":"-","view_type":"date"}',
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/dashboards/[DASHBOARDID]/export"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"access_code":"-","view_type":"date"}'
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/dashboards/[DASHBOARDID]/export");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"access_code\":\"-\",\"view_type\":\"date\"}");
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/dashboards/[DASHBOARDID]/export");
request.Content = new StringContent(
@"{""access_code"":""-"",""view_type"":""date""}",
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/dashboards/[DASHBOARDID]/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, "{\"access_code\":\"-\",\"view_type\":\"date\"}");
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/dashboards/[DASHBOARDID]/export"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"access_code\":\"-\",\"view_type\":\"date\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"access_code\":\"-\",\"view_type\":\"date\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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/dashboards/[DASHBOARDID]/export HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"access_code":"-","view_type":"date"}
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/dashboards/[DASHBOARDID]/export");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"access_code\":\"-\",\"view_type\":\"date\"}";
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/dashboards/[DASHBOARDID]/export';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"access_code":"-","view_type":"date"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"access_code":"-","view_type":"date"}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/dashboards/[DASHBOARDID]/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("""{"access_code":"-","view_type":"date"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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 = [@"{\"access_code\":\"-\",\"view_type\":\"date\"}" 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/dashboards/[DASHBOARDID]/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|{"access_code":"-","view_type":"date"}|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 = @'
{"access_code":"-","view_type":"date"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/export" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/export"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"access_code\":\"-\",\"view_type\":\"date\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/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 = """
{"access_code":"-","view_type":"date"}
""".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
To delete the dashboard
OAuth Scope:
ZohoProjects.portals.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/dashboards/[DASHBOARDID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]";
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/dashboards/[DASHBOARDID]');
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/dashboards/[DASHBOARDID]")
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/dashboards/[DASHBOARDID]";
$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/dashboards/[DASHBOARDID]"
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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]"
{: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/dashboards/[DASHBOARDID]", 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/dashboards/[DASHBOARDID] 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/dashboards/[DASHBOARDID]");
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/dashboards/[DASHBOARDID]';
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/dashboards/[DASHBOARDID]")
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/dashboards/[DASHBOARDID]"];
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/dashboards/[DASHBOARDID]" 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/dashboards/[DASHBOARDID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]"
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/dashboards/[DASHBOARDID]")!
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 Default View for Dashboard
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
long
Enter the Project 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/dashboards/view?project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view";
params = Map();
params.put("project_id", "23806000097545166");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view');
url.searchParams.append('project_id', '23806000097545166');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view")
params = {
"project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'project_id' => '23806000097545166',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view" . "?" . 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/dashboards/view"
params = {
"project_id": "23806000097545166"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view?project_id=%s", enc_project_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view") { 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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view";
url += "?project_id=" + std::string(enc_project_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view" "?project_id=" enc-project_id)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view", nil)
q := req.URL.Query()
q.Add("project_id", "23806000097545166")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view?project_id=23806000097545166 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/dashboards/view");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view';
const params = new URLSearchParams({
'project_id': '23806000097545166'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
project_id = "23806000097545166"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/dashboards/view".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("project_id", "23806000097545166")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view?project_id=%@", encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_project_id = Uri.pct_encode "23806000097545166" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view" ^ "?project_id=" ^ enc_project_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view"
params <- list(
project_id = "23806000097545166"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/view")!
components.queryItems = [
URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Set Default View for Dashboard
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/dashboards/[DASHBOARDID]/view' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/view";
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/dashboards/[DASHBOARDID]/view');
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/dashboards/[DASHBOARDID]/view")
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/dashboards/[DASHBOARDID]/view";
$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/dashboards/[DASHBOARDID]/view"
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/dashboards/[DASHBOARDID]/view");
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/dashboards/[DASHBOARDID]/view");
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/dashboards/[DASHBOARDID]/view");
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/dashboards/[DASHBOARDID]/view"
{: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/dashboards/[DASHBOARDID]/view", 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/dashboards/[DASHBOARDID]/view 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/dashboards/[DASHBOARDID]/view");
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/dashboards/[DASHBOARDID]/view';
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/dashboards/[DASHBOARDID]/view")
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/dashboards/[DASHBOARDID]/view"];
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/dashboards/[DASHBOARDID]/view" 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/dashboards/[DASHBOARDID]/view" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/[DASHBOARDID]/view"
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/dashboards/[DASHBOARDID]/view")!
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
Get Gallery Data for Dashboard
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
long
Enter the Project 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/dashboards/gallery?project_id=23806000097545166' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery";
params = Map();
params.put("project_id", "23806000097545166");
response = invokeUrl
[
url: url
type: GET
parameters: params
connection: "projects"
];
info response;
const https = require('https');
const url = new URL('https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery');
url.searchParams.append('project_id', '23806000097545166');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery")
params = {
"project_id" => "23806000097545166"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'project_id' => '23806000097545166',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery" . "?" . 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/dashboards/gallery"
params = {
"project_id": "23806000097545166"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery?project_id=%s", enc_project_id);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res));
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
using System.Net.Http;
using System.Text;
using System.Web;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
var query = HttpUtility.ParseQueryString(string.Empty);
query["project_id"] = "23806000097545166";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery") { 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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery";
url += "?project_id=" + std::string(enc_project_id);
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
CURLcode res = curl_easy_perform(curl);
if (res == CURLE_OK)
std::cout << response << std::endl;
else
std::cerr << curl_easy_strerror(res) << std::endl;
curl_free(enc_project_id);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery" "?project_id=" enc-project_id)]
(def response
(client/get url
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"}
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery", nil)
q := req.URL.Query()
q.Add("project_id", "23806000097545166")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery?project_id=23806000097545166 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/dashboards/gallery");
uriBuilder.addParameter("project_id", "23806000097545166");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery';
const params = new URLSearchParams({
'project_id': '23806000097545166'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
project_id = "23806000097545166"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/dashboards/gallery".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("project_id", "23806000097545166")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery?project_id=%@", encodedProject_id];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
open Lwt
open Cohttp_lwt_unix
let () =
let enc_project_id = Uri.pct_encode "23806000097545166" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery" ^ "?project_id=" ^ enc_project_id) in
let headers = Cohttp.Header.init ()
|> fun h -> Cohttp.Header.add h "Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
in
Lwt_main.run (
Client.get ~headers uri >>= fun (_, body) ->
Cohttp_lwt.Body.to_string body >|= fun s ->
print_endline s)
$headers = @{
"Authorization" = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
}
$params = @{
project_id = "23806000097545166"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery"
params <- list(
project_id = "23806000097545166"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/dashboards/gallery")!
components.queryItems = [
URLQueryItem(name: "project_id", value: "23806000097545166")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
This module covers operations related to widgets in dashboard within Zoho Projects.
Create widget for the dashboard
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredmax length : 100
Enter the name of the widget
String
max length : 500description of the widget
String
requiredEnter the name of the module.
String
requiredEnter the chart type Accepted values: bar,hbar,pie,donut,stacked,hstacked,clustered,hclustered,sunburst,line,area,embed,analytics,kpi
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/widgets' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("folder", {"id":"4000000062001"});
params.put("module_name", "-");
params.put("chart_type", "-");
params.put("chart_configuration", [{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}]);
params.put("timespan", {"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"});
params.put("widget_configuration", [{"x":"-","y":"-","h":"-","w":"-"}]);
params.put("additional_info", {"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}});
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/widgets');
const payload = JSON.stringify({"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}});
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/widgets")
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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}',
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/widgets"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}'
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/widgets");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}],\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}}}");
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/widgets");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""folder"":{""id"":""4000000062001""},""module_name"":""-"",""chart_type"":""-"",""chart_configuration"":[{""report_field"":""-"",""aggregate_function"":""-"",""group_by"":""-"",""embed_url"":""-"",""kpi_widget_position_type"":""-"",""is_dashboard"":""-"",""analytics_id"":""-""}],""timespan"":{""offsetleft"":""-"",""offsetright"":""-"",""type"":""Task"",""from"":""-"",""to"":""-""},""widget_configuration"":[{""x"":""-"",""y"":""-"",""h"":""-"",""w"":""-""}],""additional_info"":{""cumulative"":""-"",""kpi_settings"":{""kpi_symbol_direction"":""-"",""kpi_numeric_symbol"":""-"",""kpi_precision_type"":""-"",""kpi_precision"":""-"",""kpi_widget_position_type"":""-""}}}",
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/widgets");
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\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}],\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}}}");
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/widgets"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}],\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}],\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}}}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets", 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/widgets HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}
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/widgets");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}],\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}}}";
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/widgets';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}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/widgets")
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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/widgets"];
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\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}],\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}}}" 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/widgets" 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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}|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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}],\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets")!
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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}],"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}}}
""".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 widget for the dashboard
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
max length : 100Enter the name of the widget
String
max length : 500description of the widget
String
Enter the chart type Accepted values: bar,hbar,pie,donut,stacked,hstacked,clustered,hclustered,sunburst,line,area,kpi
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/widgets/[WIDGETID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("chart_type", "-");
params.put("chart_configuration", [{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}]);
params.put("folder", {"id":"4000000062001"});
params.put("timespan", {"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"});
params.put("additional_info", {"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}});
params.put("widget_configuration", [{"x":"-","y":"-","h":"-","w":"-"}]);
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/widgets/[WIDGETID]');
const payload = JSON.stringify({"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]});
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/widgets/[WIDGETID]")
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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}',
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/widgets/[WIDGETID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}'
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/widgets/[WIDGETID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}]}");
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/widgets/[WIDGETID]");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""chart_type"":""-"",""chart_configuration"":[{""report_field"":""-"",""aggregate_function"":""-"",""group_by"":""-"",""embed_url"":""-"",""kpi_widget_position_type"":""-"",""is_dashboard"":""-"",""analytics_id"":""-""}],""folder"":{""id"":""4000000062001""},""timespan"":{""offsetleft"":""-"",""offsetright"":""-"",""type"":""Task"",""from"":""-"",""to"":""-""},""additional_info"":{""cumulative"":""-"",""kpi_settings"":{""kpi_symbol_direction"":""-"",""kpi_numeric_symbol"":""-"",""kpi_precision_type"":""-"",""kpi_precision"":""-"",""kpi_widget_position_type"":""-""}},""widget_configuration"":[{""x"":""-"",""y"":""-"",""h"":""-"",""w"":""-""}]}",
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/widgets/[WIDGETID]");
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\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}]}");
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/widgets/[WIDGETID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]", 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/widgets/[WIDGETID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}
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/widgets/[WIDGETID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}]}";
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/widgets/[WIDGETID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}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/widgets/[WIDGETID]")
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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]"];
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\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}]}" 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/widgets/[WIDGETID]" 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":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}|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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"-\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":[{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]")!
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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"-","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":[{"x":"-","y":"-","h":"-","w":"-"}]}
""".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 Widget
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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]/clone' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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/widgets/[WIDGETID]/clone" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]/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/widgets/[WIDGETID]/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
To delete Widget
OAuth Scope:
ZohoProjects.portals.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/widgets/[WIDGETID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]";
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/widgets/[WIDGETID]');
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/widgets/[WIDGETID]")
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/widgets/[WIDGETID]";
$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/widgets/[WIDGETID]"
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/widgets/[WIDGETID]");
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/widgets/[WIDGETID]");
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/widgets/[WIDGETID]");
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/widgets/[WIDGETID]"
{: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/widgets/[WIDGETID]", 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/widgets/[WIDGETID] 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/widgets/[WIDGETID]");
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/widgets/[WIDGETID]';
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/widgets/[WIDGETID]")
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/widgets/[WIDGETID]"];
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/widgets/[WIDGETID]" 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/widgets/[WIDGETID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/widgets/[WIDGETID]"
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/widgets/[WIDGETID]")!
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 reports within Zoho Projects. Use this API to generate, export, and retrieve task and project reports, including bug and task report histories.
Retrieve workload report meta details from the Zoho projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
long
Enter the project ID (Not required for global reports).
String
Enter the chart start date.
String
Enter the chart end date.
String
requiredEnter the view period. Accepted values: days,weeks,months
String
requiredEnter the group by value. Accepted values: users,task_list,teams,profiles,roles
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/reports/workload/meta?project_id=23806000097545166&from_date=2025-05-01T00%3A00%3A00.000Z&to_date=2025-05-31T23%3A59%3A59.999Z&time_period=days&group_by=users' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta";
params = Map();
params.put("project_id", "23806000097545166");
params.put("from_date", "2025-05-01T00:00:00.000Z");
params.put("to_date", "2025-05-31T23:59:59.999Z");
params.put("time_period", "days");
params.put("group_by", "users");
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/reports/workload/meta');
url.searchParams.append('project_id', '23806000097545166');
url.searchParams.append('from_date', '2025-05-01T00:00:00.000Z');
url.searchParams.append('to_date', '2025-05-31T23:59:59.999Z');
url.searchParams.append('time_period', 'days');
url.searchParams.append('group_by', 'users');
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/reports/workload/meta")
params = {
"project_id" => "23806000097545166",
"from_date" => "2025-05-01T00:00:00.000Z",
"to_date" => "2025-05-31T23:59:59.999Z",
"time_period" => "days",
"group_by" => "users"
}
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 = [
'project_id' => '23806000097545166',
'from_date' => '2025-05-01T00:00:00.000Z',
'to_date' => '2025-05-31T23:59:59.999Z',
'time_period' => 'days',
'group_by' => 'users',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta" . "?" . 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/reports/workload/meta"
params = {
"project_id": "23806000097545166",
"from_date": "2025-05-01T00:00:00.000Z",
"to_date": "2025-05-31T23:59:59.999Z",
"time_period": "days",
"group_by": "users"
}
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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char *enc_from_date = curl_easy_escape(curl, "2025-05-01T00:00:00.000Z", 0);
char *enc_to_date = curl_easy_escape(curl, "2025-05-31T23:59:59.999Z", 0);
char *enc_time_period = curl_easy_escape(curl, "days", 0);
char *enc_group_by = curl_easy_escape(curl, "users", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta?project_id=%s&from_date=%s&to_date=%s&time_period=%s&group_by=%s", enc_project_id, enc_from_date, enc_to_date, enc_time_period, enc_group_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_project_id);
curl_free(enc_from_date);
curl_free(enc_to_date);
curl_free(enc_time_period);
curl_free(enc_group_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["project_id"] = "23806000097545166";
query["from_date"] = "2025-05-01T00:00:00.000Z";
query["to_date"] = "2025-05-31T23:59:59.999Z";
query["time_period"] = "days";
query["group_by"] = "users";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta") { 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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char* enc_from_date = curl_easy_escape(curl, "2025-05-01T00:00:00.000Z", 0);
char* enc_to_date = curl_easy_escape(curl, "2025-05-31T23:59:59.999Z", 0);
char* enc_time_period = curl_easy_escape(curl, "days", 0);
char* enc_group_by = curl_easy_escape(curl, "users", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta";
url += "?project_id=" + std::string(enc_project_id);
url += "&from_date=" + std::string(enc_from_date);
url += "&to_date=" + std::string(enc_to_date);
url += "&time_period=" + std::string(enc_time_period);
url += "&group_by=" + std::string(enc_group_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_project_id);
curl_free(enc_from_date);
curl_free(enc_to_date);
curl_free(enc_time_period);
curl_free(enc_group_by);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
enc-from_date (java.net.URLEncoder/encode "2025-05-01T00:00:00.000Z" "UTF-8")
enc-to_date (java.net.URLEncoder/encode "2025-05-31T23:59:59.999Z" "UTF-8")
enc-time_period (java.net.URLEncoder/encode "days" "UTF-8")
enc-group_by (java.net.URLEncoder/encode "users" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta" "?project_id=" enc-project_id "&from_date=" enc-from_date "&to_date=" enc-to_date "&time_period=" enc-time_period "&group_by=" enc-group_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/reports/workload/meta", nil)
q := req.URL.Query()
q.Add("project_id", "23806000097545166")
q.Add("from_date", "2025-05-01T00:00:00.000Z")
q.Add("to_date", "2025-05-31T23:59:59.999Z")
q.Add("time_period", "days")
q.Add("group_by", "users")
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/reports/workload/meta?project_id=23806000097545166&from_date=2025-05-01T00%3A00%3A00.000Z&to_date=2025-05-31T23%3A59%3A59.999Z&time_period=days&group_by=users 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/reports/workload/meta");
uriBuilder.addParameter("project_id", "23806000097545166");
uriBuilder.addParameter("from_date", "2025-05-01T00:00:00.000Z");
uriBuilder.addParameter("to_date", "2025-05-31T23:59:59.999Z");
uriBuilder.addParameter("time_period", "days");
uriBuilder.addParameter("group_by", "users");
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/reports/workload/meta';
const params = new URLSearchParams({
'project_id': '23806000097545166',
'from_date': '2025-05-01T00:00:00.000Z',
'to_date': '2025-05-31T23:59:59.999Z',
'time_period': 'days',
'group_by': 'users'
});
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));
project_id = "23806000097545166"
from_date = "2025-05-01T00:00:00.000Z"
to_date = "2025-05-31T23:59:59.999Z"
time_period = "days"
group_by = "users"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/reports/workload/meta".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("project_id", "23806000097545166")
urlBuilder.addQueryParameter("from_date", "2025-05-01T00:00:00.000Z")
urlBuilder.addQueryParameter("to_date", "2025-05-31T23:59:59.999Z")
urlBuilder.addQueryParameter("time_period", "days")
urlBuilder.addQueryParameter("group_by", "users")
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 *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFrom_date = [@"2025-05-01T00:00:00.000Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedTo_date = [@"2025-05-31T23:59:59.999Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedTime_period = [@"days" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedGroup_by = [@"users" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta?project_id=%@&from_date=%@&to_date=%@&time_period=%@&group_by=%@", encodedProject_id, encodedFrom_date, encodedTo_date, encodedTime_period, encodedGroup_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_project_id = Uri.pct_encode "23806000097545166" in
let enc_from_date = Uri.pct_encode "2025-05-01T00:00:00.000Z" in
let enc_to_date = Uri.pct_encode "2025-05-31T23:59:59.999Z" in
let enc_time_period = Uri.pct_encode "days" in
let enc_group_by = Uri.pct_encode "users" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta" ^ "?project_id=" ^ enc_project_id ^ "&from_date=" ^ enc_from_date ^ "&to_date=" ^ enc_to_date ^ "&time_period=" ^ enc_time_period ^ "&group_by=" ^ enc_group_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 = @{
project_id = "23806000097545166"
from_date = "2025-05-01T00:00:00.000Z"
to_date = "2025-05-31T23:59:59.999Z"
time_period = "days"
group_by = "users"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/meta"
params <- list(
project_id = "23806000097545166",
from_date = "2025-05-01T00:00:00.000Z",
to_date = "2025-05-31T23:59:59.999Z",
time_period = "days",
group_by = "users"
)
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/reports/workload/meta")!
components.queryItems = [
URLQueryItem(name: "project_id", value: "23806000097545166"),
URLQueryItem(name: "from_date", value: "2025-05-01T00:00:00.000Z"),
URLQueryItem(name: "to_date", value: "2025-05-31T23:59:59.999Z"),
URLQueryItem(name: "time_period", value: "days"),
URLQueryItem(name: "group_by", value: "users")
]
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 workload report details from the Zoho projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
long
Enter the project ID (Not required for global reports).
String
Enter the chart start date.
String
Enter the chart end date.
String
requiredEnter the group by value. Accepted values: users,task_list,teams,profiles,roles
int
Enter the index of the record.
int
Enter the range of the record.
String
Enter the filter criteria.
boolean
Specify whether to fetch the details of unassigned user only. Accepted values: true or false
String
max length : 50Enter the search term.
JSONArray
max length : 2000array size : 1-20
Enter the entity 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload?project_id=23806000097545166&from_date=2025-05-01T00%3A00%3A00.000Z&to_date=2025-05-31T23%3A59%3A59.999Z&group_by=users&index=1&range=15&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2232%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22Network%22%5D%7D%5D%2C%22pattern%22%3A%221%22%2C%22is_saved%22%3Afalse%2C%22isclearfilter%22%3Atrue%7D&fetch_unassignee=false&search_term=Zoho+Projects&grouped_ids=%5B%224000000002379%22%5D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload";
params = Map();
params.put("project_id", "23806000097545166");
params.put("from_date", "2025-05-01T00:00:00.000Z");
params.put("to_date", "2025-05-31T23:59:59.999Z");
params.put("group_by", "users");
params.put("index", "1");
params.put("range", 15);
params.put("filter", {"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true});
params.put("fetch_unassignee", false);
params.put("search_term", "Zoho Projects");
params.put("grouped_ids", ["4000000002379"]);
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/reports/workload');
url.searchParams.append('project_id', '23806000097545166');
url.searchParams.append('from_date', '2025-05-01T00:00:00.000Z');
url.searchParams.append('to_date', '2025-05-31T23:59:59.999Z');
url.searchParams.append('group_by', 'users');
url.searchParams.append('index', '1');
url.searchParams.append('range', '15');
url.searchParams.append('filter', '{"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}');
url.searchParams.append('fetch_unassignee', 'false');
url.searchParams.append('search_term', 'Zoho Projects');
url.searchParams.append('grouped_ids', '["4000000002379"]');
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/reports/workload")
params = {
"project_id" => "23806000097545166",
"from_date" => "2025-05-01T00:00:00.000Z",
"to_date" => "2025-05-31T23:59:59.999Z",
"group_by" => "users",
"index" => "1",
"range" => "15",
"filter" => "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}",
"fetch_unassignee" => "false",
"search_term" => "Zoho Projects",
"grouped_ids" => "[\"4000000002379\"]"
}
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 = [
'project_id' => '23806000097545166',
'from_date' => '2025-05-01T00:00:00.000Z',
'to_date' => '2025-05-31T23:59:59.999Z',
'group_by' => 'users',
'index' => '1',
'range' => '15',
'filter' => '{"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}',
'fetch_unassignee' => 'false',
'search_term' => 'Zoho Projects',
'grouped_ids' => '["4000000002379"]',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload" . "?" . 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/reports/workload"
params = {
"project_id": "23806000097545166",
"from_date": "2025-05-01T00:00:00.000Z",
"to_date": "2025-05-31T23:59:59.999Z",
"group_by": "users",
"index": "1",
"range": "15",
"filter": "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}",
"fetch_unassignee": "false",
"search_term": "Zoho Projects",
"grouped_ids": "[\"4000000002379\"]"
}
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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char *enc_from_date = curl_easy_escape(curl, "2025-05-01T00:00:00.000Z", 0);
char *enc_to_date = curl_easy_escape(curl, "2025-05-31T23:59:59.999Z", 0);
char *enc_group_by = curl_easy_escape(curl, "users", 0);
char *enc_index = curl_easy_escape(curl, "1", 0);
char *enc_range = curl_easy_escape(curl, "15", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}", 0);
char *enc_fetch_unassignee = curl_easy_escape(curl, "false", 0);
char *enc_search_term = curl_easy_escape(curl, "Zoho Projects", 0);
char *enc_grouped_ids = curl_easy_escape(curl, "[\"4000000002379\"]", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload?project_id=%s&from_date=%s&to_date=%s&group_by=%s&index=%s&range=%s&filter=%s&fetch_unassignee=%s&search_term=%s&grouped_ids=%s", enc_project_id, enc_from_date, enc_to_date, enc_group_by, enc_index, enc_range, enc_filter, enc_fetch_unassignee, enc_search_term, enc_grouped_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_project_id);
curl_free(enc_from_date);
curl_free(enc_to_date);
curl_free(enc_group_by);
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_filter);
curl_free(enc_fetch_unassignee);
curl_free(enc_search_term);
curl_free(enc_grouped_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["project_id"] = "23806000097545166";
query["from_date"] = "2025-05-01T00:00:00.000Z";
query["to_date"] = "2025-05-31T23:59:59.999Z";
query["group_by"] = "users";
query["index"] = "1";
query["range"] = "15";
query["filter"] = "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}";
query["fetch_unassignee"] = "false";
query["search_term"] = "Zoho Projects";
query["grouped_ids"] = "[\"4000000002379\"]";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload") { 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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char* enc_from_date = curl_easy_escape(curl, "2025-05-01T00:00:00.000Z", 0);
char* enc_to_date = curl_easy_escape(curl, "2025-05-31T23:59:59.999Z", 0);
char* enc_group_by = curl_easy_escape(curl, "users", 0);
char* enc_index = curl_easy_escape(curl, "1", 0);
char* enc_range = curl_easy_escape(curl, "15", 0);
char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}", 0);
char* enc_fetch_unassignee = curl_easy_escape(curl, "false", 0);
char* enc_search_term = curl_easy_escape(curl, "Zoho Projects", 0);
char* enc_grouped_ids = curl_easy_escape(curl, "[\"4000000002379\"]", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload";
url += "?project_id=" + std::string(enc_project_id);
url += "&from_date=" + std::string(enc_from_date);
url += "&to_date=" + std::string(enc_to_date);
url += "&group_by=" + std::string(enc_group_by);
url += "&index=" + std::string(enc_index);
url += "&range=" + std::string(enc_range);
url += "&filter=" + std::string(enc_filter);
url += "&fetch_unassignee=" + std::string(enc_fetch_unassignee);
url += "&search_term=" + std::string(enc_search_term);
url += "&grouped_ids=" + std::string(enc_grouped_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_project_id);
curl_free(enc_from_date);
curl_free(enc_to_date);
curl_free(enc_group_by);
curl_free(enc_index);
curl_free(enc_range);
curl_free(enc_filter);
curl_free(enc_fetch_unassignee);
curl_free(enc_search_term);
curl_free(enc_grouped_ids);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
enc-from_date (java.net.URLEncoder/encode "2025-05-01T00:00:00.000Z" "UTF-8")
enc-to_date (java.net.URLEncoder/encode "2025-05-31T23:59:59.999Z" "UTF-8")
enc-group_by (java.net.URLEncoder/encode "users" "UTF-8")
enc-index (java.net.URLEncoder/encode "1" "UTF-8")
enc-range (java.net.URLEncoder/encode "15" "UTF-8")
enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}" "UTF-8")
enc-fetch_unassignee (java.net.URLEncoder/encode "false" "UTF-8")
enc-search_term (java.net.URLEncoder/encode "Zoho Projects" "UTF-8")
enc-grouped_ids (java.net.URLEncoder/encode "[\"4000000002379\"]" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload" "?project_id=" enc-project_id "&from_date=" enc-from_date "&to_date=" enc-to_date "&group_by=" enc-group_by "&index=" enc-index "&range=" enc-range "&filter=" enc-filter "&fetch_unassignee=" enc-fetch_unassignee "&search_term=" enc-search_term "&grouped_ids=" enc-grouped_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/reports/workload", nil)
q := req.URL.Query()
q.Add("project_id", "23806000097545166")
q.Add("from_date", "2025-05-01T00:00:00.000Z")
q.Add("to_date", "2025-05-31T23:59:59.999Z")
q.Add("group_by", "users")
q.Add("index", "1")
q.Add("range", "15")
q.Add("filter", "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}")
q.Add("fetch_unassignee", "false")
q.Add("search_term", "Zoho Projects")
q.Add("grouped_ids", "[\"4000000002379\"]")
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/reports/workload?project_id=23806000097545166&from_date=2025-05-01T00%3A00%3A00.000Z&to_date=2025-05-31T23%3A59%3A59.999Z&group_by=users&index=1&range=15&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2232%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22Network%22%5D%7D%5D%2C%22pattern%22%3A%221%22%2C%22is_saved%22%3Afalse%2C%22isclearfilter%22%3Atrue%7D&fetch_unassignee=false&search_term=Zoho+Projects&grouped_ids=%5B%224000000002379%22%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/reports/workload");
uriBuilder.addParameter("project_id", "23806000097545166");
uriBuilder.addParameter("from_date", "2025-05-01T00:00:00.000Z");
uriBuilder.addParameter("to_date", "2025-05-31T23:59:59.999Z");
uriBuilder.addParameter("group_by", "users");
uriBuilder.addParameter("index", "1");
uriBuilder.addParameter("range", "15");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}");
uriBuilder.addParameter("fetch_unassignee", "false");
uriBuilder.addParameter("search_term", "Zoho Projects");
uriBuilder.addParameter("grouped_ids", "[\"4000000002379\"]");
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/reports/workload';
const params = new URLSearchParams({
'project_id': '23806000097545166',
'from_date': '2025-05-01T00:00:00.000Z',
'to_date': '2025-05-31T23:59:59.999Z',
'group_by': 'users',
'index': '1',
'range': '15',
'filter': '{"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}',
'fetch_unassignee': 'false',
'search_term': 'Zoho Projects',
'grouped_ids': '["4000000002379"]'
});
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));
project_id = "23806000097545166"
from_date = "2025-05-01T00:00:00.000Z"
to_date = "2025-05-31T23:59:59.999Z"
group_by = "users"
index = "1"
range = 15
filter = {"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}
fetch_unassignee = false
search_term = "Zoho Projects"
grouped_ids = ["4000000002379"]
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/reports/workload".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("project_id", "23806000097545166")
urlBuilder.addQueryParameter("from_date", "2025-05-01T00:00:00.000Z")
urlBuilder.addQueryParameter("to_date", "2025-05-31T23:59:59.999Z")
urlBuilder.addQueryParameter("group_by", "users")
urlBuilder.addQueryParameter("index", "1")
urlBuilder.addQueryParameter("range", "15")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}")
urlBuilder.addQueryParameter("fetch_unassignee", "false")
urlBuilder.addQueryParameter("search_term", "Zoho Projects")
urlBuilder.addQueryParameter("grouped_ids", "[\"4000000002379\"]")
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 *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFrom_date = [@"2025-05-01T00:00:00.000Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedTo_date = [@"2025-05-31T23:59:59.999Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedGroup_by = [@"users" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedIndex = [@"1" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedRange = [@"15" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFetch_unassignee = [@"false" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSearch_term = [@"Zoho Projects" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedGrouped_ids = [@"[\"4000000002379\"]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload?project_id=%@&from_date=%@&to_date=%@&group_by=%@&index=%@&range=%@&filter=%@&fetch_unassignee=%@&search_term=%@&grouped_ids=%@", encodedProject_id, encodedFrom_date, encodedTo_date, encodedGroup_by, encodedIndex, encodedRange, encodedFilter, encodedFetch_unassignee, encodedSearch_term, encodedGrouped_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_project_id = Uri.pct_encode "23806000097545166" in
let enc_from_date = Uri.pct_encode "2025-05-01T00:00:00.000Z" in
let enc_to_date = Uri.pct_encode "2025-05-31T23:59:59.999Z" in
let enc_group_by = Uri.pct_encode "users" in
let enc_index = Uri.pct_encode "1" in
let enc_range = Uri.pct_encode "15" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}" in
let enc_fetch_unassignee = Uri.pct_encode "false" in
let enc_search_term = Uri.pct_encode "Zoho Projects" in
let enc_grouped_ids = Uri.pct_encode "[\"4000000002379\"]" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload" ^ "?project_id=" ^ enc_project_id ^ "&from_date=" ^ enc_from_date ^ "&to_date=" ^ enc_to_date ^ "&group_by=" ^ enc_group_by ^ "&index=" ^ enc_index ^ "&range=" ^ enc_range ^ "&filter=" ^ enc_filter ^ "&fetch_unassignee=" ^ enc_fetch_unassignee ^ "&search_term=" ^ enc_search_term ^ "&grouped_ids=" ^ enc_grouped_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 = @{
project_id = "23806000097545166"
from_date = "2025-05-01T00:00:00.000Z"
to_date = "2025-05-31T23:59:59.999Z"
group_by = "users"
index = "1"
range = "15"
filter = "{`"criteria`":[{`"cfid`":`"32`",`"criteria_condition`":`"contains`",`"value`":[`"Network`"]}],`"pattern`":`"1`",`"is_saved`":false,`"isclearfilter`":true}"
fetch_unassignee = "false"
search_term = "Zoho Projects"
grouped_ids = "[`"4000000002379`"]"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload"
params <- list(
project_id = "23806000097545166",
from_date = "2025-05-01T00:00:00.000Z",
to_date = "2025-05-31T23:59:59.999Z",
group_by = "users",
index = "1",
range = "15",
filter = "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}",
fetch_unassignee = "false",
search_term = "Zoho Projects",
grouped_ids = "[\"4000000002379\"]"
)
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/reports/workload")!
components.queryItems = [
URLQueryItem(name: "project_id", value: "23806000097545166"),
URLQueryItem(name: "from_date", value: "2025-05-01T00:00:00.000Z"),
URLQueryItem(name: "to_date", value: "2025-05-31T23:59:59.999Z"),
URLQueryItem(name: "group_by", value: "users"),
URLQueryItem(name: "index", value: "1"),
URLQueryItem(name: "range", value: "15"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}"),
URLQueryItem(name: "fetch_unassignee", value: "false"),
URLQueryItem(name: "search_term", value: "Zoho Projects"),
URLQueryItem(name: "grouped_ids", value: "[\"4000000002379\"]")
]
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 allocated work details of an existing user or resource from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
long
Enter the project ID (Not required for global reports).
String
Enter the chart start date.
String
Enter the chart end date.
String
requiredEnter the group by value. Accepted values: users,task_list,teams,profiles,roles
String
Enter the filter criteria.
String
Enter the token to fetch the next set of entity 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details?project_id=23806000097545166&from_date=2025-05-01T00%3A00%3A00.000Z&to_date=2025-05-31T23%3A59%3A59.999Z&group_by=users&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2232%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22Network%22%5D%7D%5D%2C%22pattern%22%3A%221%22%2C%22is_saved%22%3Afalse%2C%22isclearfilter%22%3Atrue%7D&next_token=projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details";
params = Map();
params.put("project_id", "23806000097545166");
params.put("from_date", "2025-05-01T00:00:00.000Z");
params.put("to_date", "2025-05-31T23:59:59.999Z");
params.put("group_by", "users");
params.put("filter", {"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true});
params.put("next_token", "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637");
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/reports/workload/owner/[OWNERID]/details');
url.searchParams.append('project_id', '23806000097545166');
url.searchParams.append('from_date', '2025-05-01T00:00:00.000Z');
url.searchParams.append('to_date', '2025-05-31T23:59:59.999Z');
url.searchParams.append('group_by', 'users');
url.searchParams.append('filter', '{"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}');
url.searchParams.append('next_token', 'projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637');
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/reports/workload/owner/[OWNERID]/details")
params = {
"project_id" => "23806000097545166",
"from_date" => "2025-05-01T00:00:00.000Z",
"to_date" => "2025-05-31T23:59:59.999Z",
"group_by" => "users",
"filter" => "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}",
"next_token" => "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637"
}
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 = [
'project_id' => '23806000097545166',
'from_date' => '2025-05-01T00:00:00.000Z',
'to_date' => '2025-05-31T23:59:59.999Z',
'group_by' => 'users',
'filter' => '{"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}',
'next_token' => 'projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details" . "?" . 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/reports/workload/owner/[OWNERID]/details"
params = {
"project_id": "23806000097545166",
"from_date": "2025-05-01T00:00:00.000Z",
"to_date": "2025-05-31T23:59:59.999Z",
"group_by": "users",
"filter": "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}",
"next_token": "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637"
}
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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char *enc_from_date = curl_easy_escape(curl, "2025-05-01T00:00:00.000Z", 0);
char *enc_to_date = curl_easy_escape(curl, "2025-05-31T23:59:59.999Z", 0);
char *enc_group_by = curl_easy_escape(curl, "users", 0);
char *enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}", 0);
char *enc_next_token = curl_easy_escape(curl, "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details?project_id=%s&from_date=%s&to_date=%s&group_by=%s&filter=%s&next_token=%s", enc_project_id, enc_from_date, enc_to_date, enc_group_by, enc_filter, enc_next_token);
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_project_id);
curl_free(enc_from_date);
curl_free(enc_to_date);
curl_free(enc_group_by);
curl_free(enc_filter);
curl_free(enc_next_token);
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["project_id"] = "23806000097545166";
query["from_date"] = "2025-05-01T00:00:00.000Z";
query["to_date"] = "2025-05-31T23:59:59.999Z";
query["group_by"] = "users";
query["filter"] = "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}";
query["next_token"] = "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details") { 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_project_id = curl_easy_escape(curl, "23806000097545166", 0);
char* enc_from_date = curl_easy_escape(curl, "2025-05-01T00:00:00.000Z", 0);
char* enc_to_date = curl_easy_escape(curl, "2025-05-31T23:59:59.999Z", 0);
char* enc_group_by = curl_easy_escape(curl, "users", 0);
char* enc_filter = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}", 0);
char* enc_next_token = curl_easy_escape(curl, "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details";
url += "?project_id=" + std::string(enc_project_id);
url += "&from_date=" + std::string(enc_from_date);
url += "&to_date=" + std::string(enc_to_date);
url += "&group_by=" + std::string(enc_group_by);
url += "&filter=" + std::string(enc_filter);
url += "&next_token=" + std::string(enc_next_token);
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_project_id);
curl_free(enc_from_date);
curl_free(enc_to_date);
curl_free(enc_group_by);
curl_free(enc_filter);
curl_free(enc_next_token);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-project_id (java.net.URLEncoder/encode "23806000097545166" "UTF-8")
enc-from_date (java.net.URLEncoder/encode "2025-05-01T00:00:00.000Z" "UTF-8")
enc-to_date (java.net.URLEncoder/encode "2025-05-31T23:59:59.999Z" "UTF-8")
enc-group_by (java.net.URLEncoder/encode "users" "UTF-8")
enc-filter (java.net.URLEncoder/encode "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}" "UTF-8")
enc-next_token (java.net.URLEncoder/encode "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details" "?project_id=" enc-project_id "&from_date=" enc-from_date "&to_date=" enc-to_date "&group_by=" enc-group_by "&filter=" enc-filter "&next_token=" enc-next_token)]
(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/reports/workload/owner/[OWNERID]/details", nil)
q := req.URL.Query()
q.Add("project_id", "23806000097545166")
q.Add("from_date", "2025-05-01T00:00:00.000Z")
q.Add("to_date", "2025-05-31T23:59:59.999Z")
q.Add("group_by", "users")
q.Add("filter", "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}")
q.Add("next_token", "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637")
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/reports/workload/owner/[OWNERID]/details?project_id=23806000097545166&from_date=2025-05-01T00%3A00%3A00.000Z&to_date=2025-05-31T23%3A59%3A59.999Z&group_by=users&filter=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%2232%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%22Network%22%5D%7D%5D%2C%22pattern%22%3A%221%22%2C%22is_saved%22%3Afalse%2C%22isclearfilter%22%3Atrue%7D&next_token=projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637 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/reports/workload/owner/[OWNERID]/details");
uriBuilder.addParameter("project_id", "23806000097545166");
uriBuilder.addParameter("from_date", "2025-05-01T00:00:00.000Z");
uriBuilder.addParameter("to_date", "2025-05-31T23:59:59.999Z");
uriBuilder.addParameter("group_by", "users");
uriBuilder.addParameter("filter", "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}");
uriBuilder.addParameter("next_token", "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637");
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/reports/workload/owner/[OWNERID]/details';
const params = new URLSearchParams({
'project_id': '23806000097545166',
'from_date': '2025-05-01T00:00:00.000Z',
'to_date': '2025-05-31T23:59:59.999Z',
'group_by': 'users',
'filter': '{"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}',
'next_token': 'projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637'
});
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));
project_id = "23806000097545166"
from_date = "2025-05-01T00:00:00.000Z"
to_date = "2025-05-31T23:59:59.999Z"
group_by = "users"
filter = {"criteria":[{"cfid":"32","criteria_condition":"contains","value":["Network"]}],"pattern":"1","is_saved":false,"isclearfilter":true}
next_token = "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637"
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/reports/workload/owner/[OWNERID]/details".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("project_id", "23806000097545166")
urlBuilder.addQueryParameter("from_date", "2025-05-01T00:00:00.000Z")
urlBuilder.addQueryParameter("to_date", "2025-05-31T23:59:59.999Z")
urlBuilder.addQueryParameter("group_by", "users")
urlBuilder.addQueryParameter("filter", "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}")
urlBuilder.addQueryParameter("next_token", "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637")
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 *encodedProject_id = [@"23806000097545166" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFrom_date = [@"2025-05-01T00:00:00.000Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedTo_date = [@"2025-05-31T23:59:59.999Z" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedGroup_by = [@"users" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedFilter = [@"{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedNext_token = [@"projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details?project_id=%@&from_date=%@&to_date=%@&group_by=%@&filter=%@&next_token=%@", encodedProject_id, encodedFrom_date, encodedTo_date, encodedGroup_by, encodedFilter, encodedNext_token];
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_project_id = Uri.pct_encode "23806000097545166" in
let enc_from_date = Uri.pct_encode "2025-05-01T00:00:00.000Z" in
let enc_to_date = Uri.pct_encode "2025-05-31T23:59:59.999Z" in
let enc_group_by = Uri.pct_encode "users" in
let enc_filter = Uri.pct_encode "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}" in
let enc_next_token = Uri.pct_encode "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details" ^ "?project_id=" ^ enc_project_id ^ "&from_date=" ^ enc_from_date ^ "&to_date=" ^ enc_to_date ^ "&group_by=" ^ enc_group_by ^ "&filter=" ^ enc_filter ^ "&next_token=" ^ enc_next_token) 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 = @{
project_id = "23806000097545166"
from_date = "2025-05-01T00:00:00.000Z"
to_date = "2025-05-31T23:59:59.999Z"
group_by = "users"
filter = "{`"criteria`":[{`"cfid`":`"32`",`"criteria_condition`":`"contains`",`"value`":[`"Network`"]}],`"pattern`":`"1`",`"is_saved`":false,`"isclearfilter`":true}"
next_token = "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/workload/owner/[OWNERID]/details"
params <- list(
project_id = "23806000097545166",
from_date = "2025-05-01T00:00:00.000Z",
to_date = "2025-05-31T23:59:59.999Z",
group_by = "users",
filter = "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}",
next_token = "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637"
)
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/reports/workload/owner/[OWNERID]/details")!
components.queryItems = [
URLQueryItem(name: "project_id", value: "23806000097545166"),
URLQueryItem(name: "from_date", value: "2025-05-01T00:00:00.000Z"),
URLQueryItem(name: "to_date", value: "2025-05-31T23:59:59.999Z"),
URLQueryItem(name: "group_by", value: "users"),
URLQueryItem(name: "filter", value: "{\"criteria\":[{\"cfid\":\"32\",\"criteria_condition\":\"contains\",\"value\":[\"Network\"]}],\"pattern\":\"1\",\"is_saved\":false,\"isclearfilter\":true}"),
URLQueryItem(name: "next_token", value: "projects-99de5bbbfd5a29869a95cc2a0c02730fe77b9cf67ad2b7f5800445cc01583e26a8580a97622e7ff88dda837ef21ad24fb97e6eb8f06f1f41feb9761a201d3b9ba4939b375b5935c2cddd7d8b54654b32cce38d47db390c7cafba052fadb82f1d60d558b829611462a000a25c9cdf1e2d4f8eadd6eef30e3b7c802c807fc2c59672c30a75650e3621d53708e3d4ec738805a576354d47dd305db1756ca576a8da131c8d8042bf7eaf8d5464ac275f1a8ba9a70474deaa7f8809578e7bcc82706a11cef928393829993cdb62c0a89fa637")
]
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
to create report folder
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredmax length : 200
Enter the name of the report folder
String
max length : 10000Enter the description of the report folder
String
access 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/reports/folders' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("access_type", "-");
params.put("project", {"id":"4000000062001"});
params.put("reports", {"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/reports/folders');
const payload = JSON.stringify({"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders")
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":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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/reports/folders");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""access_type"":""-"",""project"":{""id"":""4000000062001""},""reports"":{""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/reports/folders");
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\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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/reports/folders"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"id\":\"4000000062001\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"id\":\"4000000062001\"}}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders", 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/reports/folders HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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/reports/folders';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders")
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":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders"];
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\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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/reports/folders" 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":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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 = @'
{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"id\":\"4000000062001\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders")!
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":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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
to update the report folder details
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredmax length : 200
Enter the name of the report folder
String
max length : 10000Enter the description of the report folder
String
access 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("access_type", "-");
params.put("project", {"id":"4000000062001"});
params.put("reports", {"id":"4000000062001"});
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/reports/folders/1752587000000097260');
const payload = JSON.stringify({"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}});
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/reports/folders/1752587000000097260")
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":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders/1752587000000097260"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}'
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/reports/folders/1752587000000097260");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""access_type"":""-"",""project"":{""id"":""4000000062001""},""reports"":{""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/reports/folders/1752587000000097260");
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\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"id\":\"4000000062001\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"id\":\"4000000062001\"}}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260", 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/reports/folders/1752587000000097260 HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders/1752587000000097260");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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/reports/folders/1752587000000097260';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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/reports/folders/1752587000000097260")
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":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260"];
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\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"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/reports/folders/1752587000000097260" 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":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}|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":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"id":"4000000062001"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"access_type\":\"-\",\"project\":{\"id\":\"4000000062001\"},\"reports\":{\"id\":\"4000000062001\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260")!
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":"-","description":"-","access_type":"-","project":{"id":"4000000062001"},"reports":{"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
to delete the report folder
OAuth Scope:
ZohoProjects.portals.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/reports/folders/1752587000000097260' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260";
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/reports/folders/1752587000000097260');
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/reports/folders/1752587000000097260")
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/reports/folders/1752587000000097260";
$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/reports/folders/1752587000000097260"
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/reports/folders/1752587000000097260");
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/reports/folders/1752587000000097260");
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/reports/folders/1752587000000097260");
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/reports/folders/1752587000000097260"
{: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/reports/folders/1752587000000097260", 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/reports/folders/1752587000000097260 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/reports/folders/1752587000000097260");
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/reports/folders/1752587000000097260';
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/reports/folders/1752587000000097260")
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/reports/folders/1752587000000097260"];
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/reports/folders/1752587000000097260" 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/reports/folders/1752587000000097260" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260"
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/reports/folders/1752587000000097260")!
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
to re-order the report folder
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
long
before this Folder Id
long
after this Folder Id
String
first,last position
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/reports/folders/1752587000000097260/reorder' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"before":"-","after":"-","position":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260/reorder";
params = Map();
params.put("before", "-");
params.put("after", "-");
params.put("position", "-");
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/reports/folders/1752587000000097260/reorder');
const payload = JSON.stringify({"before":"-","after":"-","position":"-"});
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/reports/folders/1752587000000097260/reorder")
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 = '{"before":"-","after":"-","position":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260/reorder";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"before":"-","after":"-","position":"-"}',
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/reports/folders/1752587000000097260/reorder"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"before":"-","after":"-","position":"-"}'
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/reports/folders/1752587000000097260/reorder");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}");
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/reports/folders/1752587000000097260/reorder");
request.Content = new StringContent(
@"{""before"":""-"",""after"":""-"",""position"":""-""}",
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/reports/folders/1752587000000097260/reorder");
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, "{\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}");
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/reports/folders/1752587000000097260/reorder"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260/reorder", 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/reports/folders/1752587000000097260/reorder HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"before":"-","after":"-","position":"-"}
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/reports/folders/1752587000000097260/reorder");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}";
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/reports/folders/1752587000000097260/reorder';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"before":"-","after":"-","position":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"before":"-","after":"-","position":"-"}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/reports/folders/1752587000000097260/reorder")
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("""{"before":"-","after":"-","position":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260/reorder"];
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 = [@"{\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}" 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/reports/folders/1752587000000097260/reorder" 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|{"before":"-","after":"-","position":"-"}|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 = @'
{"before":"-","after":"-","position":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260/reorder" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260/reorder"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/folders/1752587000000097260/reorder")!
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 = """
{"before":"-","after":"-","position":"-"}
""".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
Create Report
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredmax length : 100
Enter the name of the custom report
String
max length : 500description of the report
String
requiredEnter the name of the module. Accepted values: {regex}
String
requiredEnter the chart type Accepted values: bar,hbar,pie,donut,stacked,hstacked,clustered,hclustered,sunburst,line,area,embed,analytics,kpi
boolean
true if created as widget from the dashboard
String
Enter the criteria.
String
Enter the criteria expression.
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/reports' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("folder", {"id":"4000000062001"});
params.put("module_name", "-");
params.put("chart_type", "-");
params.put("chart_configuration", [{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}]);
params.put("timespan", {"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"});
params.put("is_widget", "-");
params.put("widget_configuration", {"x":"-","y":"-","h":"-","w":"-"});
params.put("additional_info", {"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}});
params.put("criteria", "-");
params.put("conditional_expression", "-");
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/reports');
const payload = JSON.stringify({"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"});
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/reports")
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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}',
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/reports"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}'
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/reports");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"is_widget\":\"-\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"criteria\":\"-\",\"conditional_expression\":\"-\"}");
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/reports");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""folder"":{""id"":""4000000062001""},""module_name"":""-"",""chart_type"":""-"",""chart_configuration"":[{""report_field"":""-"",""aggregate_function"":""-"",""group_by"":""users"",""embed_url"":""-"",""kpi_widget_position_type"":""-"",""is_dashboard"":""-"",""analytics_id"":""-""}],""timespan"":{""offsetleft"":""-"",""offsetright"":""-"",""type"":""Task"",""from"":""-"",""to"":""-""},""is_widget"":""-"",""widget_configuration"":{""x"":""-"",""y"":""-"",""h"":""-"",""w"":""-""},""additional_info"":{""cumulative"":""-"",""kpi_settings"":{""kpi_symbol_direction"":""-"",""kpi_numeric_symbol"":""-"",""kpi_precision_type"":""-"",""kpi_precision"":""-"",""kpi_widget_position_type"":""-""}},""criteria"":""-"",""conditional_expression"":""-""}",
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/reports");
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\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"is_widget\":\"-\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"criteria\":\"-\",\"conditional_expression\":\"-\"}");
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/reports"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"is_widget\":\"-\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"criteria\":\"-\",\"conditional_expression\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"is_widget\":\"-\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"criteria\":\"-\",\"conditional_expression\":\"-\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/reports", 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/reports HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}
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/reports");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"is_widget\":\"-\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"criteria\":\"-\",\"conditional_expression\":\"-\"}";
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/reports';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}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/reports")
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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports"];
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\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"is_widget\":\"-\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"criteria\":\"-\",\"conditional_expression\":\"-\"}" 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/reports" 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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}|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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/reports" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"folder\":{\"id\":\"4000000062001\"},\"module_name\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"is_widget\":\"-\",\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"criteria\":\"-\",\"conditional_expression\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/reports")!
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":"-","folder":{"id":"4000000062001"},"module_name":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"is_widget":"-","widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"criteria":"-","conditional_expression":"-"}
""".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 Report
OAuth Scope:
ZohoProjects.portals.READ
Parameter
String
max length : 100Enter the name of the custom report
String
max length : 500description of the report
String
Enter the chart type Accepted values: bar,hbar,pie,donut,stacked,hstacked,clustered,hclustered,sunburst,line,area,kpi
String
Enter the criteria.
String
Enter the criteria expression.
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/reports/[REPORTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]";
params = Map();
params.put("name", "-");
params.put("description", "-");
params.put("chart_type", "-");
params.put("chart_configuration", [{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}]);
params.put("folder", {"id":"4000000062001"});
params.put("timespan", {"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"});
params.put("additional_info", {"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}});
params.put("widget_configuration", {"x":"-","y":"-","h":"-","w":"-"});
params.put("criteria", "-");
params.put("conditional_expression", "-");
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/reports/[REPORTID]');
const payload = JSON.stringify({"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"});
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/reports/[REPORTID]")
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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}',
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/reports/[REPORTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}'
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/reports/[REPORTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"criteria\":\"-\",\"conditional_expression\":\"-\"}");
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/reports/[REPORTID]");
request.Content = new StringContent(
@"{""name"":""-"",""description"":""-"",""chart_type"":""-"",""chart_configuration"":[{""report_field"":""-"",""aggregate_function"":""-"",""group_by"":""users"",""embed_url"":""-"",""kpi_widget_position_type"":""-"",""is_dashboard"":""-"",""analytics_id"":""-""}],""folder"":{""id"":""4000000062001""},""timespan"":{""offsetleft"":""-"",""offsetright"":""-"",""type"":""Task"",""from"":""-"",""to"":""-""},""additional_info"":{""cumulative"":""-"",""kpi_settings"":{""kpi_symbol_direction"":""-"",""kpi_numeric_symbol"":""-"",""kpi_precision_type"":""-"",""kpi_precision"":""-"",""kpi_widget_position_type"":""-""}},""widget_configuration"":{""x"":""-"",""y"":""-"",""h"":""-"",""w"":""-""},""criteria"":""-"",""conditional_expression"":""-""}",
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/reports/[REPORTID]");
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\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"criteria\":\"-\",\"conditional_expression\":\"-\"}");
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/reports/[REPORTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"criteria\":\"-\",\"conditional_expression\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"criteria\":\"-\",\"conditional_expression\":\"-\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]", 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/reports/[REPORTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}
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/reports/[REPORTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"criteria\":\"-\",\"conditional_expression\":\"-\"}";
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/reports/[REPORTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}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/reports/[REPORTID]")
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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]"];
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\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"criteria\":\"-\",\"conditional_expression\":\"-\"}" 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/reports/[REPORTID]" 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":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}|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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"-\",\"description\":\"-\",\"chart_type\":\"-\",\"chart_configuration\":[{\"report_field\":\"-\",\"aggregate_function\":\"-\",\"group_by\":\"users\",\"embed_url\":\"-\",\"kpi_widget_position_type\":\"-\",\"is_dashboard\":\"-\",\"analytics_id\":\"-\"}],\"folder\":{\"id\":\"4000000062001\"},\"timespan\":{\"offsetleft\":\"-\",\"offsetright\":\"-\",\"type\":\"Task\",\"from\":\"-\",\"to\":\"-\"},\"additional_info\":{\"cumulative\":\"-\",\"kpi_settings\":{\"kpi_symbol_direction\":\"-\",\"kpi_numeric_symbol\":\"-\",\"kpi_precision_type\":\"-\",\"kpi_precision\":\"-\",\"kpi_widget_position_type\":\"-\"}},\"widget_configuration\":{\"x\":\"-\",\"y\":\"-\",\"h\":\"-\",\"w\":\"-\"},\"criteria\":\"-\",\"conditional_expression\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]")!
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":"-","description":"-","chart_type":"-","chart_configuration":[{"report_field":"-","aggregate_function":"-","group_by":"users","embed_url":"-","kpi_widget_position_type":"-","is_dashboard":"-","analytics_id":"-"}],"folder":{"id":"4000000062001"},"timespan":{"offsetleft":"-","offsetright":"-","type":"Task","from":"-","to":"-"},"additional_info":{"cumulative":"-","kpi_settings":{"kpi_symbol_direction":"-","kpi_numeric_symbol":"-","kpi_precision_type":"-","kpi_precision":"-","kpi_widget_position_type":"-"}},"widget_configuration":{"x":"-","y":"-","h":"-","w":"-"},"criteria":"-","conditional_expression":"-"}
""".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 Report Details
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 POST \
'https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/clone' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/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/reports/[REPORTID]/clone" -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/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/reports/[REPORTID]/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
to delete Report
OAuth Scope:
ZohoProjects.portals.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/reports/[REPORTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]";
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/reports/[REPORTID]');
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/reports/[REPORTID]")
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/reports/[REPORTID]";
$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/reports/[REPORTID]"
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/reports/[REPORTID]");
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/reports/[REPORTID]");
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/reports/[REPORTID]");
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/reports/[REPORTID]"
{: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/reports/[REPORTID]", 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/reports/[REPORTID] 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/reports/[REPORTID]");
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/reports/[REPORTID]';
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/reports/[REPORTID]")
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/reports/[REPORTID]"];
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/reports/[REPORTID]" 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/reports/[REPORTID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]"
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/reports/[REPORTID]")!
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
Reorder Report Details
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
long
requiredFolder Id
long
before this Report Id
long
after this Report Id
String
first,last position
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/reports/[REPORTID]/reorder' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"folder_id":"-","before":"-","after":"-","position":"-"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/reorder";
params = Map();
params.put("folder_id", "-");
params.put("before", "-");
params.put("after", "-");
params.put("position", "-");
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/reports/[REPORTID]/reorder');
const payload = JSON.stringify({"folder_id":"-","before":"-","after":"-","position":"-"});
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/reports/[REPORTID]/reorder")
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 = '{"folder_id":"-","before":"-","after":"-","position":"-"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/reorder";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"folder_id":"-","before":"-","after":"-","position":"-"}',
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/reports/[REPORTID]/reorder"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"folder_id":"-","before":"-","after":"-","position":"-"}'
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/reports/[REPORTID]/reorder");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"folder_id\":\"-\",\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}");
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/reports/[REPORTID]/reorder");
request.Content = new StringContent(
@"{""folder_id"":""-"",""before"":""-"",""after"":""-"",""position"":""-""}",
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/reports/[REPORTID]/reorder");
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, "{\"folder_id\":\"-\",\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}");
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/reports/[REPORTID]/reorder"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"folder_id\":\"-\",\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"folder_id\":\"-\",\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/reorder", 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/reports/[REPORTID]/reorder HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"folder_id":"-","before":"-","after":"-","position":"-"}
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/reports/[REPORTID]/reorder");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"folder_id\":\"-\",\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}";
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/reports/[REPORTID]/reorder';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"folder_id":"-","before":"-","after":"-","position":"-"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"folder_id":"-","before":"-","after":"-","position":"-"}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/reports/[REPORTID]/reorder")
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("""{"folder_id":"-","before":"-","after":"-","position":"-"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/reorder"];
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 = [@"{\"folder_id\":\"-\",\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}" 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/reports/[REPORTID]/reorder" 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|{"folder_id":"-","before":"-","after":"-","position":"-"}|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 = @'
{"folder_id":"-","before":"-","after":"-","position":"-"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/reorder" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/reorder"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"folder_id\":\"-\",\"before\":\"-\",\"after\":\"-\",\"position\":\"-\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/reports/[REPORTID]/reorder")!
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 = """
{"folder_id":"-","before":"-","after":"-","position":"-"}
""".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 integration related operations within Zoho Projects, including connections with various Zoho applications and third-party services. Use these APIs to manage integrations, update settings, and retrieve data.
This module covers operations related to integrations associated with modules within Zoho Projects. Use this API to manage integrations associated with the modules. This is currently supported for projects module only.
Retrieve the integration details of a module from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.integrations.READ
Query Parameter
string
requiredEnter the api name or module id.
string
Enter the entity ID's (comma separated).
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/entity/integrations' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations";
params = Map();
params.put("module", "projects");
params.put("entity_ids", "1752587000000097299, 1752587000000097300");
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/entity/integrations');
const payload = JSON.stringify({"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"});
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
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/entity/integrations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
request["Content-Type"] = "application/json"
request.body = '{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => '{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}',
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/entity/integrations"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}'
response = requests.get(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/entity/integrations");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"projects\",\"entity_ids\":\"1752587000000097299, 1752587000000097300\"}");
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/entity/integrations");
request.Content = new StringContent(
@"{""module"":""projects"",""entity_ids"":""1752587000000097299, 1752587000000097300""}",
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/entity/integrations");
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);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"module\":\"projects\",\"entity_ids\":\"1752587000000097299, 1752587000000097300\"}");
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/entity/integrations"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"module\":\"projects\",\"entity_ids\":\"1752587000000097299, 1752587000000097300\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"module\":\"projects\",\"entity_ids\":\"1752587000000097299, 1752587000000097300\"}")
req, _ := http.NewRequest("GET", "https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations", 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))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}
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/entity/integrations");
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/entity/integrations';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}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/entity/integrations")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
conn.setRequestProperty("Content-Type", "application/json")
conn.doOutput = true
conn.outputStream.bufferedWriter().use { it.write("""{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *body = [@"{\"module\":\"projects\",\"entity_ids\":\"1752587000000097299, 1752587000000097300\"}" 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/entity/integrations" 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":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}|json} in
Lwt_main.run (
Client.get ~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":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations" -Method GET -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations"
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"module\":\"projects\",\"entity_ids\":\"1752587000000097299, 1752587000000097300\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/entity/integrations")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = """
{"module":"projects","entity_ids":"1752587000000097299, 1752587000000097300"}
""".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
NO_PROJECTS HTTP 200
INVALID_PROJECT_IDS HTTP 400
UNSUPPORTED_MODULE HTTP 400
INVALID_ENTITY_IDS HTTP 400
This module covers all leave-related operations within Zoho Projects. Use this API to retrieve, add, update, or delete leave records. To enable the leave module for your portal, please send an email to support@zylker.com.
Retrieve all the leaves from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.leave.READ
Query Parameter
int
Enter the index number to retrieve. Should be greater than or equal to 0.
int
Enter the number of records to retrieve. Should be less than or equal to 200.
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/leave?index=1&range=100' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/leave";
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/leave');
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/leave")
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/leave" . "?" . 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/leave"
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/leave?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/leave") { 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/leave";
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/leave" "?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/leave", 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/leave?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/leave");
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/leave';
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/leave".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/leave?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/leave" ^ "?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/leave" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/leave"
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/leave")!
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
Retrieve specific leave details from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.leave.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/leave/[LEAVEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]";
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/leave/[LEAVEID]');
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/leave/[LEAVEID]")
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/leave/[LEAVEID]";
$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/leave/[LEAVEID]"
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/leave/[LEAVEID]");
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/leave/[LEAVEID]");
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/leave/[LEAVEID]");
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/leave/[LEAVEID]"
{: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/leave/[LEAVEID]", 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/leave/[LEAVEID] 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/leave/[LEAVEID]");
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/leave/[LEAVEID]';
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/leave/[LEAVEID]")
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/leave/[LEAVEID]"];
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/leave/[LEAVEID]" 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/leave/[LEAVEID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]"
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/leave/[LEAVEID]")!
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 leave in the Zoho Projects portal. A maximum of 100 leaves can be added in a request. Multiple user leaves cannot be added with a single request.
OAuth Scope:
ZohoProjects.leave.CREATE
Parameter
String
requiredEnter the Leave type. A maximum of 100 characters can be added.
String
requiredEnter the start date of the leave. E.g. 2024-07-02T10:00:00Z
String
requiredEnter the end date of the leave. E.g. 2024-07-02T10:00:00Z
String
max length : 250Enter the reason for the leave. A maximum of 250 characters can be added.
String
max length : 250Enter the reference ID. A maximum of 250 characters can be added.
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/leave' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/leave";
params = Map();
params.put("user", {"zpuid":"4000000002055"});
params.put("type", "Casual Leave");
params.put("from_date", "2024-07-01T00:00:00.000Z");
params.put("to_date", "2024-07-31T23:59:59.000Z");
params.put("reason", "Vacation");
params.put("reference_id", "205");
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/leave');
const payload = JSON.stringify({"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"});
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/leave")
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 = '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/leave";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}',
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/leave"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}'
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/leave");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}");
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/leave");
request.Content = new StringContent(
@"{""user"":{""zpuid"":""4000000002055""},""type"":""Casual Leave"",""from_date"":""2024-07-01T00:00:00.000Z"",""to_date"":""2024-07-31T23:59:59.000Z"",""reason"":""Vacation"",""reference_id"":""205""}",
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/leave");
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, "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}");
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/leave"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/leave", 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/leave HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}
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/leave");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}";
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/leave';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}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/leave")
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("""{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/leave"];
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 = [@"{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}" 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/leave" 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|{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}|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 = @'
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/leave" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/leave"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/leave")!
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 = """
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}
""".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 the leave details in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.leave.UPDATE
Parameter
String
requiredEnter the Leave type. A maximum of 100 characters can be added.
String
requiredEnter the start date of the leave. E.g. 2024-07-02T10:00:00Z
String
requiredEnter the end date of the leave. E.g. 2024-07-02T10:00:00Z
String
max length : 250Enter the reason for the leave. A maximum of 250 characters can be added.
String
max length : 250Enter the reference ID. A maximum of 250 characters can be added.
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/leave/[LEAVEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]";
params = Map();
params.put("user", {"zpuid":"4000000002055"});
params.put("type", "Casual Leave");
params.put("from_date", "2024-07-01T00:00:00.000Z");
params.put("to_date", "2024-07-31T23:59:59.000Z");
params.put("reason", "Vacation");
params.put("reference_id", "205");
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/leave/[LEAVEID]');
const payload = JSON.stringify({"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"});
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/leave/[LEAVEID]")
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 = '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}',
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/leave/[LEAVEID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}'
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/leave/[LEAVEID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}");
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/leave/[LEAVEID]");
request.Content = new StringContent(
@"{""user"":{""zpuid"":""4000000002055""},""type"":""Casual Leave"",""from_date"":""2024-07-01T00:00:00.000Z"",""to_date"":""2024-07-31T23:59:59.000Z"",""reason"":""Vacation"",""reference_id"":""205""}",
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/leave/[LEAVEID]");
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, "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}");
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/leave/[LEAVEID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]", 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/leave/[LEAVEID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}
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/leave/[LEAVEID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}";
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/leave/[LEAVEID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}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/leave/[LEAVEID]")
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("""{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]"];
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 = [@"{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}" 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/leave/[LEAVEID]" 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|{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}|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 = @'
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"user\":{\"zpuid\":\"4000000002055\"},\"type\":\"Casual Leave\",\"from_date\":\"2024-07-01T00:00:00.000Z\",\"to_date\":\"2024-07-31T23:59:59.000Z\",\"reason\":\"Vacation\",\"reference_id\":\"205\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]")!
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 = """
{"user":{"zpuid":"4000000002055"},"type":"Casual Leave","from_date":"2024-07-01T00:00:00.000Z","to_date":"2024-07-31T23:59:59.000Z","reason":"Vacation","reference_id":"205"}
""".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 leave from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.leave.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/leave/[LEAVEID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]";
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/leave/[LEAVEID]');
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/leave/[LEAVEID]")
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/leave/[LEAVEID]";
$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/leave/[LEAVEID]"
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/leave/[LEAVEID]");
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/leave/[LEAVEID]");
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/leave/[LEAVEID]");
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/leave/[LEAVEID]"
{: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/leave/[LEAVEID]", 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/leave/[LEAVEID] 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/leave/[LEAVEID]");
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/leave/[LEAVEID]';
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/leave/[LEAVEID]")
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/leave/[LEAVEID]"];
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/leave/[LEAVEID]" 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/leave/[LEAVEID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/leave/[LEAVEID]"
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/leave/[LEAVEID]")!
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 search related operations within Zoho Projects. Use this API to retrieve search results from modules and the portal.
Retrieve search results from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.READ, ZohoSearch.securesearch.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
Enter the number of entries to be displayed per page.
String
requiredEnter the search term.
String
requiredEnter the module name. Accepted values for default modules: all,projects,milestones,tasklists,tasks,bugs,forums,events,status For Custom modules : Enter the API name of the custom module. You can use this API to get the API names of the custom modules.
String
required Specify the Project status. Accepted values: all,active,archived,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/search?page=1&per_page=10&search_term=task+name&module=tasks&status=active' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/search";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("search_term", "task name");
params.put("module", "tasks");
params.put("status", "active");
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/search');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('search_term', 'task name');
url.searchParams.append('module', 'tasks');
url.searchParams.append('status', 'active');
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/search")
params = {
"page" => "1",
"per_page" => "10",
"search_term" => "task name",
"module" => "tasks",
"status" => "active"
}
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',
'search_term' => 'task name',
'module' => 'tasks',
'status' => 'active',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/search" . "?" . 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/search"
params = {
"page": "1",
"per_page": "10",
"search_term": "task name",
"module": "tasks",
"status": "active"
}
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_search_term = curl_easy_escape(curl, "task name", 0);
char *enc_module = curl_easy_escape(curl, "tasks", 0);
char *enc_status = curl_easy_escape(curl, "active", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/search?page=%s&per_page=%s&search_term=%s&module=%s&status=%s", enc_page, enc_per_page, enc_search_term, enc_module, enc_status);
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_search_term);
curl_free(enc_module);
curl_free(enc_status);
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["search_term"] = "task name";
query["module"] = "tasks";
query["status"] = "active";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/search") { 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_search_term = curl_easy_escape(curl, "task name", 0);
char* enc_module = curl_easy_escape(curl, "tasks", 0);
char* enc_status = curl_easy_escape(curl, "active", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/search";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&search_term=" + std::string(enc_search_term);
url += "&module=" + std::string(enc_module);
url += "&status=" + std::string(enc_status);
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_search_term);
curl_free(enc_module);
curl_free(enc_status);
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-search_term (java.net.URLEncoder/encode "task name" "UTF-8")
enc-module (java.net.URLEncoder/encode "tasks" "UTF-8")
enc-status (java.net.URLEncoder/encode "active" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/search" "?page=" enc-page "&per_page=" enc-per_page "&search_term=" enc-search_term "&module=" enc-module "&status=" enc-status)]
(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/search", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("search_term", "task name")
q.Add("module", "tasks")
q.Add("status", "active")
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/search?page=1&per_page=10&search_term=task+name&module=tasks&status=active 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/search");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("search_term", "task name");
uriBuilder.addParameter("module", "tasks");
uriBuilder.addParameter("status", "active");
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/search';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'search_term': 'task name',
'module': 'tasks',
'status': 'active'
});
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"
search_term = "task name"
module = "tasks"
status = "active"
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/search".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("search_term", "task name")
urlBuilder.addQueryParameter("module", "tasks")
urlBuilder.addQueryParameter("status", "active")
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 *encodedSearch_term = [@"task name" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedModule = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedStatus = [@"active" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/search?page=%@&per_page=%@&search_term=%@&module=%@&status=%@", encodedPage, encodedPer_page, encodedSearch_term, encodedModule, encodedStatus];
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_search_term = Uri.pct_encode "task name" in
let enc_module = Uri.pct_encode "tasks" in
let enc_status = Uri.pct_encode "active" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/search" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&search_term=" ^ enc_search_term ^ "&module=" ^ enc_module ^ "&status=" ^ enc_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"
}
$params = @{
page = "1"
per_page = "10"
search_term = "task name"
module = "tasks"
status = "active"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/search" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/search"
params <- list(
page = "1",
per_page = "10",
search_term = "task name",
module = "tasks",
status = "active"
)
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/search")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "search_term", value: "task name"),
URLQueryItem(name: "module", value: "tasks"),
URLQueryItem(name: "status", value: "active")
]
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 search results from a project
OAuth Scope:
ZohoProjects.portals.READ, ZohoSearch.securesearch.READ
Query Parameter
int
default : 1Enter the page number.
int
limit : 1-200default : 100
Enter the number of entries to be displayed per page.
String
requiredEnter the search term.
String
requiredEnter the module name. Accepted values for default modules: all,projects,milestones,tasklists,tasks,bugs,forums,events,status For Custom modules : Enter the API name of the custom module. You can use this API to get the API names of the custom modules.
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/search?page=1&per_page=10&search_term=task+name&module=tasks' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search";
params = Map();
params.put("page", "1");
params.put("per_page", "10");
params.put("search_term", "task name");
params.put("module", "tasks");
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/search');
url.searchParams.append('page', '1');
url.searchParams.append('per_page', '10');
url.searchParams.append('search_term', 'task name');
url.searchParams.append('module', 'tasks');
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/search")
params = {
"page" => "1",
"per_page" => "10",
"search_term" => "task name",
"module" => "tasks"
}
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',
'search_term' => 'task name',
'module' => 'tasks',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search" . "?" . 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/search"
params = {
"page": "1",
"per_page": "10",
"search_term": "task name",
"module": "tasks"
}
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_search_term = curl_easy_escape(curl, "task name", 0);
char *enc_module = curl_easy_escape(curl, "tasks", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search?page=%s&per_page=%s&search_term=%s&module=%s", enc_page, enc_per_page, enc_search_term, 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_page);
curl_free(enc_per_page);
curl_free(enc_search_term);
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["page"] = "1";
query["per_page"] = "10";
query["search_term"] = "task name";
query["module"] = "tasks";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search") { 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_search_term = curl_easy_escape(curl, "task name", 0);
char* enc_module = curl_easy_escape(curl, "tasks", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search";
url += "?page=" + std::string(enc_page);
url += "&per_page=" + std::string(enc_per_page);
url += "&search_term=" + std::string(enc_search_term);
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_page);
curl_free(enc_per_page);
curl_free(enc_search_term);
curl_free(enc_module);
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-search_term (java.net.URLEncoder/encode "task name" "UTF-8")
enc-module (java.net.URLEncoder/encode "tasks" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search" "?page=" enc-page "&per_page=" enc-per_page "&search_term=" enc-search_term "&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/projects/1752587000000097024/search", nil)
q := req.URL.Query()
q.Add("page", "1")
q.Add("per_page", "10")
q.Add("search_term", "task name")
q.Add("module", "tasks")
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/search?page=1&per_page=10&search_term=task+name&module=tasks 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/search");
uriBuilder.addParameter("page", "1");
uriBuilder.addParameter("per_page", "10");
uriBuilder.addParameter("search_term", "task name");
uriBuilder.addParameter("module", "tasks");
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/search';
const params = new URLSearchParams({
'page': '1',
'per_page': '10',
'search_term': 'task name',
'module': 'tasks'
});
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"
search_term = "task name"
module = "tasks"
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/search".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("page", "1")
urlBuilder.addQueryParameter("per_page", "10")
urlBuilder.addQueryParameter("search_term", "task name")
urlBuilder.addQueryParameter("module", "tasks")
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 *encodedSearch_term = [@"task name" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedModule = [@"tasks" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search?page=%@&per_page=%@&search_term=%@&module=%@", encodedPage, encodedPer_page, encodedSearch_term, 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_page = Uri.pct_encode "1" in
let enc_per_page = Uri.pct_encode "10" in
let enc_search_term = Uri.pct_encode "task name" in
let enc_module = Uri.pct_encode "tasks" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search" ^ "?page=" ^ enc_page ^ "&per_page=" ^ enc_per_page ^ "&search_term=" ^ enc_search_term ^ "&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 = @{
page = "1"
per_page = "10"
search_term = "task name"
module = "tasks"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/search" + "?" + $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/search"
params <- list(
page = "1",
per_page = "10",
search_term = "task name",
module = "tasks"
)
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/search")!
components.queryItems = [
URLQueryItem(name: "page", value: "1"),
URLQueryItem(name: "per_page", value: "10"),
URLQueryItem(name: "search_term", value: "task name"),
URLQueryItem(name: "module", value: "tasks")
]
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 feed-related operations within Zoho Projects. Use this API to retrieve feed activities and add/update feed comments.
This module covers feed status related operations within Zoho Projects. Use this API to retrieve, post, update, delete, and remove feed status.
Retrieve the status from a project.
OAuth Scope:
ZohoProjects.status.READ
Query Parameter
int
Enter the page number.
int
Enter the number of entries to be displayed per page.
String
Enter the sort order for the results. Accepted values: DESC,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/status?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/status";
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/status');
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/status")
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/status" . "?" . 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/status"
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/status?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/status") { 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/status";
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/status" "?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/status", 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/status?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/status");
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/status';
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/status".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/status?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/status" ^ "?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/status" + "?" + $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/status"
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/status")!
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
Create a new status in a project.
OAuth Scope:
ZohoProjects.status.CREATE
Parameter
String
requiredEnter the status content.
String
Enter the flag type. Accepted values: internal or external.
JSONArray
max length : 7000array size : 0-100
Enter the tag IDs to associate.
JSONArray
max length : 7000array size : 0-100
Enter the IDs of the files to be uploaded.
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/status' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"content":"Sample content","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/status";
params = Map();
params.put("content", "Sample content");
params.put("flag", "external");
params.put("tag_ids", "[12345678987654321]");
params.put("attachment_ids", "[12345678987654321]");
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/status');
const payload = JSON.stringify({"content":"Sample content","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"});
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/status")
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","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/status";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"content":"Sample content","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}',
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/status"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"content":"Sample content","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}'
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/status");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"content\":\"Sample content\",\"flag\":\"external\",\"tag_ids\":\"[12345678987654321]\",\"attachment_ids\":\"[12345678987654321]\"}");
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/status");
request.Content = new StringContent(
@"{""content"":""Sample content"",""flag"":""external"",""tag_ids"":""[12345678987654321]"",""attachment_ids"":""[12345678987654321]""}",
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/status");
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\",\"flag\":\"external\",\"tag_ids\":\"[12345678987654321]\",\"attachment_ids\":\"[12345678987654321]\"}");
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/status"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"content\":\"Sample content\",\"flag\":\"external\",\"tag_ids\":\"[12345678987654321]\",\"attachment_ids\":\"[12345678987654321]\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"content\":\"Sample content\",\"flag\":\"external\",\"tag_ids\":\"[12345678987654321]\",\"attachment_ids\":\"[12345678987654321]\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/status", 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/status HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"content":"Sample content","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}
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/status");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"content\":\"Sample content\",\"flag\":\"external\",\"tag_ids\":\"[12345678987654321]\",\"attachment_ids\":\"[12345678987654321]\"}";
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/status';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"content":"Sample content","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"content":"Sample content","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}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/status")
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","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/status"];
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\",\"flag\":\"external\",\"tag_ids\":\"[12345678987654321]\",\"attachment_ids\":\"[12345678987654321]\"}" 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/status" 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","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}|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","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/status" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/status"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"content\":\"Sample content\",\"flag\":\"external\",\"tag_ids\":\"[12345678987654321]\",\"attachment_ids\":\"[12345678987654321]\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/projects/1752587000000097024/status")!
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","flag":"external","tag_ids":"[12345678987654321]","attachment_ids":"[12345678987654321]"}
""".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 setup-related operations within Zoho Projects. Use this API to manage task dependency settings, update user preferences for email notifications, and adjust portal user properties.
Modify the project configuration in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
JSONObject
requiredmax length : 50000
Specify the configuration of project completion percentage.
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/projects' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/projects";
params = Map();
params.put("project_completion_percentage", {"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"});
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/projects');
const payload = JSON.stringify({"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}});
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/projects")
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 = '{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/projects";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}',
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/projects"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}'
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/projects");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"project_completion_percentage\":{\"calculation_type\":\"weightage_based\",\"task_weightage_field\":\"Duration\",\"bug_weightage_field\":\"Work Hours\"}}");
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/projects");
request.Content = new StringContent(
@"{""project_completion_percentage"":{""calculation_type"":""weightage_based"",""task_weightage_field"":""Duration"",""bug_weightage_field"":""Work Hours""}}",
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/projects");
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, "{\"project_completion_percentage\":{\"calculation_type\":\"weightage_based\",\"task_weightage_field\":\"Duration\",\"bug_weightage_field\":\"Work Hours\"}}");
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/projects"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"project_completion_percentage\":{\"calculation_type\":\"weightage_based\",\"task_weightage_field\":\"Duration\",\"bug_weightage_field\":\"Work Hours\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"project_completion_percentage\":{\"calculation_type\":\"weightage_based\",\"task_weightage_field\":\"Duration\",\"bug_weightage_field\":\"Work Hours\"}}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/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))
}
PATCH https://projectsapi.zoho.com/api/v3/portal/739121528/settings/projects HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}
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/projects");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"project_completion_percentage\":{\"calculation_type\":\"weightage_based\",\"task_weightage_field\":\"Duration\",\"bug_weightage_field\":\"Work Hours\"}}";
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/projects';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}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/projects")
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("""{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/settings/projects"];
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 = [@"{\"project_completion_percentage\":{\"calculation_type\":\"weightage_based\",\"task_weightage_field\":\"Duration\",\"bug_weightage_field\":\"Work Hours\"}}" 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/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|{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}|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 = @'
{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/projects" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/projects"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"project_completion_percentage\":{\"calculation_type\":\"weightage_based\",\"task_weightage_field\":\"Duration\",\"bug_weightage_field\":\"Work Hours\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/settings/projects")!
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 = """
{"project_completion_percentage":{"calculation_type":"weightage_based","task_weightage_field":"Duration","bug_weightage_field":"Work Hours"}}
""".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
PATTERN_NOT_MATCHED HTTP 400
This module covers marketplace related operations within Zoho Projects. Use this API to retrieve extension details, update notification statuses, and manage running or available extensions.
Store all the entity or app properties of the extension.
OAuth Scope:
ZohoProjects.extensions.CREATE
Parameter
String
requiredmax length : 255
Enter the property key.
String
requiredmax length : 2000
Enter the value to store.
String
requiredEnter the extension type. Accepted values: entity or app.
int
Enter the number of occurrences.
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/extensions/[EXTENSIONID]/storage' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
params = Map();
params.put("key", "all");
params.put("value", ["1752587000000097269"]);
params.put("type", "entity");
params.put("entity", {"id":"4000000062001","type":"Task","project_id":"23806000097545166"});
params.put("count", "20");
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/extensions/[EXTENSIONID]/storage');
const payload = JSON.stringify({"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"});
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/extensions/[EXTENSIONID]/storage")
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 = '{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}',
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/extensions/[EXTENSIONID]/storage"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}'
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/extensions/[EXTENSIONID]/storage");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"key\":\"all\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}");
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/extensions/[EXTENSIONID]/storage");
request.Content = new StringContent(
@"{""key"":""all"",""value"":[""1752587000000097269""],""type"":""entity"",""entity"":{""id"":""4000000062001"",""type"":""Task"",""project_id"":""23806000097545166""},""count"":""20""}",
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/extensions/[EXTENSIONID]/storage");
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, "{\"key\":\"all\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}");
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/extensions/[EXTENSIONID]/storage"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"key\":\"all\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"key\":\"all\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage", 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/extensions/[EXTENSIONID]/storage HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}
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/extensions/[EXTENSIONID]/storage");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"key\":\"all\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}";
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/extensions/[EXTENSIONID]/storage';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}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/extensions/[EXTENSIONID]/storage")
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("""{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"];
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 = [@"{\"key\":\"all\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}" 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/extensions/[EXTENSIONID]/storage" 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|{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}|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 = @'
{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"key\":\"all\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage")!
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 = """
{"key":"all","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}
""".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 all entity or app properties from an extension.
OAuth Scope:
ZohoProjects.extensions.READ
Query Parameter
String
requiredEnter the property key.
String
requiredEnter the property type. Accepted values: entity or app.
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/extensions/[EXTENSIONID]/storage?key=all&type=entity&entity=%7B%22id%22%3A%224000000062001%22%2C%22type%22%3A%22Task%22%2C%22project_id%22%3A%2223806000097545166%22%7D' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
params = Map();
params.put("key", "all");
params.put("type", "entity");
params.put("entity", {"id":"4000000062001","type":"Task","project_id":"23806000097545166"});
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/extensions/[EXTENSIONID]/storage');
url.searchParams.append('key', 'all');
url.searchParams.append('type', 'entity');
url.searchParams.append('entity', '{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}');
const options = {
hostname: url.hostname,
path: url.pathname + url.search,
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
});
req.on('error', (err) => { console.error(err); });
req.end();
require 'net/http'
require 'uri'
require 'json'
url = URI("https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage")
params = {
"key" => "all",
"type" => "entity",
"entity" => "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}"
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
response = http.request(request)
puts response.read_body
<?php
$params = [
'key' => 'all',
'type' => 'entity',
'entity' => '{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage" . "?" . 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/extensions/[EXTENSIONID]/storage"
params = {
"key": "all",
"type": "entity",
"entity": "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}"
}
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
char *enc_key = curl_easy_escape(curl, "all", 0);
char *enc_type = curl_easy_escape(curl, "entity", 0);
char *enc_entity = curl_easy_escape(curl, "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage?key=%s&type=%s&entity=%s", enc_key, enc_type, enc_entity);
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_key);
curl_free(enc_type);
curl_free(enc_entity);
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["key"] = "all";
query["type"] = "entity";
query["entity"] = "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage") { 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_key = curl_easy_escape(curl, "all", 0);
char* enc_type = curl_easy_escape(curl, "entity", 0);
char* enc_entity = curl_easy_escape(curl, "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
url += "?key=" + std::string(enc_key);
url += "&type=" + std::string(enc_type);
url += "&entity=" + std::string(enc_entity);
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_key);
curl_free(enc_type);
curl_free(enc_entity);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-key (java.net.URLEncoder/encode "all" "UTF-8")
enc-type (java.net.URLEncoder/encode "entity" "UTF-8")
enc-entity (java.net.URLEncoder/encode "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage" "?key=" enc-key "&type=" enc-type "&entity=" enc-entity)]
(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/extensions/[EXTENSIONID]/storage", nil)
q := req.URL.Query()
q.Add("key", "all")
q.Add("type", "entity")
q.Add("entity", "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}")
req.URL.RawQuery = q.Encode()
req.Header.Add("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
GET https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage?key=all&type=entity&entity=%7B%22id%22%3A%224000000062001%22%2C%22type%22%3A%22Task%22%2C%22project_id%22%3A%2223806000097545166%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/extensions/[EXTENSIONID]/storage");
uriBuilder.addParameter("key", "all");
uriBuilder.addParameter("type", "entity");
uriBuilder.addParameter("entity", "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}");
HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity();
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
const url = 'https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage';
const params = new URLSearchParams({
'key': 'all',
'type': 'entity',
'entity': '{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}'
});
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
}
};
fetch(url + '?' + params.toString(), options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
key = "all"
type = "entity"
entity = {"id":"4000000062001","type":"Task","project_id":"23806000097545166"}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/extensions/[EXTENSIONID]/storage".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("key", "all")
urlBuilder.addQueryParameter("type", "entity")
urlBuilder.addQueryParameter("entity", "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}")
val url = URL(urlBuilder.build().toString())
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.setRequestProperty("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa")
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSString *encodedKey = [@"all" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedType = [@"entity" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedEntity = [@"{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage?key=%@&type=%@&entity=%@", encodedKey, encodedType, encodedEntity];
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_key = Uri.pct_encode "all" in
let enc_type = Uri.pct_encode "entity" in
let enc_entity = Uri.pct_encode "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage" ^ "?key=" ^ enc_key ^ "&type=" ^ enc_type ^ "&entity=" ^ enc_entity) 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 = @{
key = "all"
type = "entity"
entity = "{`"id`":`"4000000062001`",`"type`":`"Task`",`"project_id`":`"23806000097545166`"}"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"
params <- list(
key = "all",
type = "entity",
entity = "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}"
)
response <- GET(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
query = params
)
content(response, "text")
import Foundation
var components = URLComponents(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage")!
components.queryItems = [
URLQueryItem(name: "key", value: "all"),
URLQueryItem(name: "type", value: "entity"),
URLQueryItem(name: "entity", value: "{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}")
]
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa", forHTTPHeaderField: "Authorization")
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data, let result = String(data: data, encoding: .utf8) {
print(result)
}
semaphore.signal()
}
task.resume()
semaphore.wait()
Sample Input
Sample Response
Modify the entity or app property in an extension.
OAuth Scope:
ZohoProjects.extensions.UPDATE
Parameter
long
requiredEnter the property ID.
String
requiredmax length : 2000
Enter the new value.
String
requiredEnter the property type. Accepted values: entity or app.
int
Enter the number of occurrences.
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/extensions/[EXTENSIONID]/storage' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
params = Map();
params.put("id", "4000000062001");
params.put("value", ["1752587000000097269"]);
params.put("type", "entity");
params.put("entity", {"id":"4000000062001","type":"Task","project_id":"23806000097545166"});
params.put("count", "20");
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/extensions/[EXTENSIONID]/storage');
const payload = JSON.stringify({"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"});
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/extensions/[EXTENSIONID]/storage")
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 = '{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}',
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/extensions/[EXTENSIONID]/storage"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}'
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/extensions/[EXTENSIONID]/storage");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}");
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/extensions/[EXTENSIONID]/storage");
request.Content = new StringContent(
@"{""id"":""4000000062001"",""value"":[""1752587000000097269""],""type"":""entity"",""entity"":{""id"":""4000000062001"",""type"":""Task"",""project_id"":""23806000097545166""},""count"":""20""}",
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/extensions/[EXTENSIONID]/storage");
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, "{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}");
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/extensions/[EXTENSIONID]/storage"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage", 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/extensions/[EXTENSIONID]/storage HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}
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/extensions/[EXTENSIONID]/storage");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}";
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/extensions/[EXTENSIONID]/storage';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}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/extensions/[EXTENSIONID]/storage")
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("""{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"];
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 = [@"{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}" 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/extensions/[EXTENSIONID]/storage" 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|{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}|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 = @'
{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"id\":\"4000000062001\",\"value\":[\"1752587000000097269\"],\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"},\"count\":\"20\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage")!
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 = """
{"id":"4000000062001","value":["1752587000000097269"],"type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"},"count":"20"}
""".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 the entity or app property from the extension.
OAuth Scope:
ZohoProjects.extensions.DELETE
Parameter
long
requiredEnter the property ID.
String
requiredEnter the property type. Accepted values: entity or app.
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/extensions/[EXTENSIONID]/storage' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
params = Map();
params.put("id", "4000000062001");
params.put("type", "entity");
params.put("entity", {"id":"4000000062001","type":"Task","project_id":"23806000097545166"});
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/extensions/[EXTENSIONID]/storage');
const payload = JSON.stringify({"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}});
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/extensions/[EXTENSIONID]/storage")
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 = '{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => '{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"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/extensions/[EXTENSIONID]/storage"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}}'
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/extensions/[EXTENSIONID]/storage");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"id\":\"4000000062001\",\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"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.Delete, "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage");
request.Content = new StringContent(
@"{""id"":""4000000062001"",""type"":""entity"",""entity"":{""id"":""4000000062001"",""type"":""Task"",""project_id"":""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/extensions/[EXTENSIONID]/storage");
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, "{\"id\":\"4000000062001\",\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"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/delete "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"id\":\"4000000062001\",\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"id\":\"4000000062001\",\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}}")
req, _ := http.NewRequest("DELETE", "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage", 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/extensions/[EXTENSIONID]/storage HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"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/extensions/[EXTENSIONID]/storage");
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/extensions/[EXTENSIONID]/storage';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"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/extensions/[EXTENSIONID]/storage")
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("""{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"];
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 = [@"{\"id\":\"4000000062001\",\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"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/extensions/[EXTENSIONID]/storage" 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|{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}}|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 = @'
{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"23806000097545166"}}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage" -Method DELETE -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage"
response <- DELETE(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"id\":\"4000000062001\",\"type\":\"entity\",\"entity\":{\"id\":\"4000000062001\",\"type\":\"Task\",\"project_id\":\"23806000097545166\"}}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/storage")!
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 = """
{"id":"4000000062001","type":"entity","entity":{"id":"4000000062001","type":"Task","project_id":"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
Retrieve the configuration of the extension.
OAuth Scope:
ZohoProjects.extensions.READ
Query Parameter
String
Specify the configuration level. Accepted values: user or organization.
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/extensions/[EXTENSIONID]/config?authorize_level=-' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config";
params = Map();
params.put("authorize_level", "-");
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/extensions/[EXTENSIONID]/config');
url.searchParams.append('authorize_level', '-');
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/extensions/[EXTENSIONID]/config")
params = {
"authorize_level" => "-"
}
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 = [
'authorize_level' => '-',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config" . "?" . 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/extensions/[EXTENSIONID]/config"
params = {
"authorize_level": "-"
}
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_authorize_level = curl_easy_escape(curl, "-", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config?authorize_level=%s", enc_authorize_level);
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_authorize_level);
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["authorize_level"] = "-";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config") { 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_authorize_level = curl_easy_escape(curl, "-", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config";
url += "?authorize_level=" + std::string(enc_authorize_level);
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_authorize_level);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-authorize_level (java.net.URLEncoder/encode "-" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config" "?authorize_level=" enc-authorize_level)]
(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/extensions/[EXTENSIONID]/config", nil)
q := req.URL.Query()
q.Add("authorize_level", "-")
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/extensions/[EXTENSIONID]/config?authorize_level=- 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/extensions/[EXTENSIONID]/config");
uriBuilder.addParameter("authorize_level", "-");
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/extensions/[EXTENSIONID]/config';
const params = new URLSearchParams({
'authorize_level': '-'
});
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));
authorize_level = - 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/extensions/[EXTENSIONID]/config".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("authorize_level", "-")
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 *encodedAuthorize_level = [@"-" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config?authorize_level=%@", encodedAuthorize_level];
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_authorize_level = Uri.pct_encode "-" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config" ^ "?authorize_level=" ^ enc_authorize_level) 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 = @{
authorize_level = "-"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/extensions/[EXTENSIONID]/config"
params <- list(
authorize_level = "-"
)
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/extensions/[EXTENSIONID]/config")!
components.queryItems = [
URLQueryItem(name: "authorize_level", 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
This module covers business hours related operations in Zoho Projects. Use this API to manage the business hours such as creating, updating or deleting the business hours.
Retrieve the list of business hours from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
Enter the sort order. Accepted values: DESC(field_name),ASC(field_name)
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/business-hours?%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours";
params = Map();
params.put("filter", {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"});
params.put("sort_by", "ASC(last_modified_time)");
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/business-hours');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
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/business-hours")
params = {
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}",
"sort_by" => "ASC(last_modified_time)",
"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"' => '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}',
'sort_by' => 'ASC(last_modified_time)',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours" . "?" . 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/business-hours"
params = {
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}",
"sort_by": "ASC(last_modified_time)",
"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, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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/business-hours?\"filter\"=%s&sort_by=%s&page=%s&per_page=%s", enc_"filter", enc_sort_by, 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_sort_by);
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""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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/business-hours";
url += "?"filter"=" + std::string(enc_"filter");
url += "&sort_by=" + std::string(enc_sort_by);
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_sort_by);
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 "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "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/business-hours" "?"filter"=" enc-"filter" "&sort_by=" enc-sort_by "&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/business-hours", nil)
q := req.URL.Query()
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}")
q.Add("sort_by", "ASC(last_modified_time)")
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/business-hours?%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&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/business-hours");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
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/business-hours';
const params = new URLSearchParams({
'"filter"': '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}',
'sort_by': 'ASC(last_modified_time)',
'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" = {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}
sort_by = "ASC(last_modified_time)"
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/business-hours".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
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" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" 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/business-hours?"filter"=%@&sort_by=%@&page=%@&per_page=%@", encoded"filter", encodedSort_by, 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 "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}" in
let enc_sort_by = Uri.pct_encode "ASC(last_modified_time)" 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/business-hours" ^ "?"filter"=" ^ enc_"filter" ^ "&sort_by=" ^ enc_sort_by ^ "&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" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"]}],`"pattern`":`"1 AND 2`"}"
sort_by = "ASC(last_modified_time)"
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/business-hours" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours"
params <- list(
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}",
sort_by = "ASC(last_modified_time)",
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/business-hours")!
components.queryItems = [
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
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 details of the business hours using its ID.
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/business-hours/[BUSINESS-HOURID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]";
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/business-hours/[BUSINESS-HOURID]');
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/business-hours/[BUSINESS-HOURID]")
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/business-hours/[BUSINESS-HOURID]";
$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/business-hours/[BUSINESS-HOURID]"
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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]"
{: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/business-hours/[BUSINESS-HOURID]", 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/business-hours/[BUSINESS-HOURID] 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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]';
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/business-hours/[BUSINESS-HOURID]")
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/business-hours/[BUSINESS-HOURID]"];
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/business-hours/[BUSINESS-HOURID]" 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/business-hours/[BUSINESS-HOURID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]"
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/business-hours/[BUSINESS-HOURID]")!
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 list of users associated to the business hours from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
Enter the user details.
boolean
Specify whether to exclude the matching users with the business hour.
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/business-hours/[BUSINESS-HOURID]/users?search_term=Zoho+Projects&skip_matching_users=true&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users";
params = Map();
params.put("search_term", "Zoho Projects");
params.put("skip_matching_users", 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/business-hours/[BUSINESS-HOURID]/users');
url.searchParams.append('search_term', 'Zoho Projects');
url.searchParams.append('skip_matching_users', '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/business-hours/[BUSINESS-HOURID]/users")
params = {
"search_term" => "Zoho Projects",
"skip_matching_users" => "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 = [
'search_term' => 'Zoho Projects',
'skip_matching_users' => 'true',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/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/business-hours/[BUSINESS-HOURID]/users"
params = {
"search_term": "Zoho Projects",
"skip_matching_users": "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_search_term = curl_easy_escape(curl, "Zoho Projects", 0);
char *enc_skip_matching_users = curl_easy_escape(curl, "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/business-hours/[BUSINESS-HOURID]/users?search_term=%s&skip_matching_users=%s&page=%s&per_page=%s", enc_search_term, enc_skip_matching_users, 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_search_term);
curl_free(enc_skip_matching_users);
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["search_term"] = "Zoho Projects";
query["skip_matching_users"] = "true";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/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_search_term = curl_easy_escape(curl, "Zoho Projects", 0);
char* enc_skip_matching_users = curl_easy_escape(curl, "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/business-hours/[BUSINESS-HOURID]/users";
url += "?search_term=" + std::string(enc_search_term);
url += "&skip_matching_users=" + std::string(enc_skip_matching_users);
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_search_term);
curl_free(enc_skip_matching_users);
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-search_term (java.net.URLEncoder/encode "Zoho Projects" "UTF-8")
enc-skip_matching_users (java.net.URLEncoder/encode "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/business-hours/[BUSINESS-HOURID]/users" "?search_term=" enc-search_term "&skip_matching_users=" enc-skip_matching_users "&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/business-hours/[BUSINESS-HOURID]/users", nil)
q := req.URL.Query()
q.Add("search_term", "Zoho Projects")
q.Add("skip_matching_users", "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/business-hours/[BUSINESS-HOURID]/users?search_term=Zoho+Projects&skip_matching_users=true&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/business-hours/[BUSINESS-HOURID]/users");
uriBuilder.addParameter("search_term", "Zoho Projects");
uriBuilder.addParameter("skip_matching_users", "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/business-hours/[BUSINESS-HOURID]/users';
const params = new URLSearchParams({
'search_term': 'Zoho Projects',
'skip_matching_users': '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));
search_term = "Zoho Projects"
skip_matching_users = 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/business-hours/[BUSINESS-HOURID]/users".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("search_term", "Zoho Projects")
urlBuilder.addQueryParameter("skip_matching_users", "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 *encodedSearch_term = [@"Zoho Projects" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSkip_matching_users = [@"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/business-hours/[BUSINESS-HOURID]/users?search_term=%@&skip_matching_users=%@&page=%@&per_page=%@", encodedSearch_term, encodedSkip_matching_users, 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_search_term = Uri.pct_encode "Zoho Projects" in
let enc_skip_matching_users = Uri.pct_encode "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/business-hours/[BUSINESS-HOURID]/users" ^ "?search_term=" ^ enc_search_term ^ "&skip_matching_users=" ^ enc_skip_matching_users ^ "&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 = @{
search_term = "Zoho Projects"
skip_matching_users = "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/business-hours/[BUSINESS-HOURID]/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/business-hours/[BUSINESS-HOURID]/users"
params <- list(
search_term = "Zoho Projects",
skip_matching_users = "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/business-hours/[BUSINESS-HOURID]/users")!
components.queryItems = [
URLQueryItem(name: "search_term", value: "Zoho Projects"),
URLQueryItem(name: "skip_matching_users", value: "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 a business calendar in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredmax length : 100
Enter the business hours' name.
JSONObject
requiredmax length : 100
Enter the holiday list details to associate.
JSONArray
requiredmax length : 10000
array size : 0-7
Enter the work hour details.
String
requiredEnter the work hours type. Accepted values: all_day,same_hours,different_hours
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/business-hours' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours";
params = Map();
params.put("name", "India Shift");
params.put("holiday", {"id":"4000000062001"});
params.put("working_hours", [{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}]);
params.put("working_hours_type", "same_hours");
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/business-hours');
const payload = JSON.stringify({"name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"});
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/business-hours")
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":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}',
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/business-hours"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}'
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/business-hours");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}");
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/business-hours");
request.Content = new StringContent(
@"{""name"":""India Shift"",""holiday"":{""id"":""4000000062001""},""working_hours"":[{""start_time"":""09:00"",""end_time"":""18:00"",""day"":""1"",""break_hours"":[{""start_time"":""09:00"",""end_time"":""18:00""}]}],""working_hours_type"":""same_hours""}",
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/business-hours");
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\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}");
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/business-hours"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours", 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/business-hours HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}
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/business-hours");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}";
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/business-hours';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}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/business-hours")
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":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours"];
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\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}" 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/business-hours" 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":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}|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":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours")!
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":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}
""".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 work hours by archiving the business hours and creating a new one in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
long
requiredEnter the business hours' ID.
String
max length : 100Enter the business hours' name.
JSONArray
max length : 10000array size : 0-7
Enter the work hour details.
String
Enter the work hours type. Accepted values: all_day,same_hours,different_hours
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/business-hours' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours";
params = Map();
params.put("id", "4000000062001");
params.put("name", "India Shift");
params.put("holiday", {"id":"4000000062001"});
params.put("working_hours", [{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}]);
params.put("working_hours_type", "same_hours");
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/business-hours');
const payload = JSON.stringify({"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"});
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/business-hours")
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 = '{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => '{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}',
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/business-hours"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}'
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/business-hours");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"id\":\"4000000062001\",\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}");
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/business-hours");
request.Content = new StringContent(
@"{""id"":""4000000062001"",""name"":""India Shift"",""holiday"":{""id"":""4000000062001""},""working_hours"":[{""start_time"":""09:00"",""end_time"":""18:00"",""day"":""1"",""break_hours"":[{""start_time"":""09:00"",""end_time"":""18:00""}]}],""working_hours_type"":""same_hours""}",
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/business-hours");
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, "{\"id\":\"4000000062001\",\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}");
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/business-hours"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"id\":\"4000000062001\",\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"id\":\"4000000062001\",\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}")
req, _ := http.NewRequest("PUT", "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours", 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/business-hours HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}
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/business-hours");
HttpUriRequest requestObj = new HttpPut(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"id\":\"4000000062001\",\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}";
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/business-hours';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}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/business-hours")
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("""{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours"];
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 = [@"{\"id\":\"4000000062001\",\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}" 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/business-hours" 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|{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}|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 = @'
{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours" -Method PUT -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours"
response <- PUT(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"id\":\"4000000062001\",\"name\":\"India Shift\",\"holiday\":{\"id\":\"4000000062001\"},\"working_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\",\"day\":\"1\",\"break_hours\":[{\"start_time\":\"09:00\",\"end_time\":\"18:00\"}]}],\"working_hours_type\":\"same_hours\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours")!
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 = """
{"id":"4000000062001","name":"India Shift","holiday":{"id":"4000000062001"},"working_hours":[{"start_time":"09:00","end_time":"18:00","day":"1","break_hours":[{"start_time":"09:00","end_time":"18:00"}]}],"working_hours_type":"same_hours"}
""".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
Associate/disassociate user from the business hours.
OAuth Scope:
ZohoProjects.portals.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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users";
params = Map();
params.put("add", [{"zpuid":"4000000002055"}]);
params.put("delete", [{"zpuid":"4000000002055"}]);
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/business-hours/[BUSINESS-HOURID]/users');
const payload = JSON.stringify({"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]});
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/business-hours/[BUSINESS-HOURID]/users")
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 = '{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}',
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/business-hours/[BUSINESS-HOURID]/users"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}'
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/business-hours/[BUSINESS-HOURID]/users");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"add\":[{\"zpuid\":\"4000000002055\"}],\"delete\":[{\"zpuid\":\"4000000002055\"}]}");
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/business-hours/[BUSINESS-HOURID]/users");
request.Content = new StringContent(
@"{""add"":[{""zpuid"":""4000000002055""}],""delete"":[{""zpuid"":""4000000002055""}]}",
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/business-hours/[BUSINESS-HOURID]/users");
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, "{\"add\":[{\"zpuid\":\"4000000002055\"}],\"delete\":[{\"zpuid\":\"4000000002055\"}]}");
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/business-hours/[BUSINESS-HOURID]/users"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"add\":[{\"zpuid\":\"4000000002055\"}],\"delete\":[{\"zpuid\":\"4000000002055\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"add\":[{\"zpuid\":\"4000000002055\"}],\"delete\":[{\"zpuid\":\"4000000002055\"}]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users", 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/business-hours/[BUSINESS-HOURID]/users HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}
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/business-hours/[BUSINESS-HOURID]/users");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"add\":[{\"zpuid\":\"4000000002055\"}],\"delete\":[{\"zpuid\":\"4000000002055\"}]}";
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/business-hours/[BUSINESS-HOURID]/users';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}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/business-hours/[BUSINESS-HOURID]/users")
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("""{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users"];
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 = [@"{\"add\":[{\"zpuid\":\"4000000002055\"}],\"delete\":[{\"zpuid\":\"4000000002055\"}]}" 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/business-hours/[BUSINESS-HOURID]/users" 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|{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}|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 = @'
{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"add\":[{\"zpuid\":\"4000000002055\"}],\"delete\":[{\"zpuid\":\"4000000002055\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/users")!
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 = """
{"add":[{"zpuid":"4000000002055"}],"delete":[{"zpuid":"4000000002055"}]}
""".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
Set default business hours in the Zoho Projects portal.
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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/mark-as-default' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-default" -Method PATCH -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]/mark-as-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/business-hours/[BUSINESS-HOURID]/mark-as-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()
Remove a business calendar from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.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/business-hours/[BUSINESS-HOURID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]";
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/business-hours/[BUSINESS-HOURID]');
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/business-hours/[BUSINESS-HOURID]")
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/business-hours/[BUSINESS-HOURID]";
$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/business-hours/[BUSINESS-HOURID]"
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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]"
{: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/business-hours/[BUSINESS-HOURID]", 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/business-hours/[BUSINESS-HOURID] 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/business-hours/[BUSINESS-HOURID]");
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/business-hours/[BUSINESS-HOURID]';
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/business-hours/[BUSINESS-HOURID]")
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/business-hours/[BUSINESS-HOURID]"];
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/business-hours/[BUSINESS-HOURID]" 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/business-hours/[BUSINESS-HOURID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/business-hours/[BUSINESS-HOURID]"
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/business-hours/[BUSINESS-HOURID]")!
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()
This module covers holidays related operations in Zoho Projects. Use this API to manage the holidays such as creating, updating or deleting the holidays.
Retrieve holiday lists from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
String
Enter the sort order. Accepted values: DESC(field_name),ASC(field_name)
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/holiday-list?%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list";
params = Map();
params.put("filter", {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"});
params.put("sort_by", "ASC(last_modified_time)");
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/holiday-list');
url.searchParams.append('"filter"', '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}');
url.searchParams.append('sort_by', 'ASC(last_modified_time)');
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/holiday-list")
params = {
""filter"" => "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}",
"sort_by" => "ASC(last_modified_time)",
"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"' => '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}',
'sort_by' => 'ASC(last_modified_time)',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list" . "?" . 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/holiday-list"
params = {
""filter"": "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}",
"sort_by": "ASC(last_modified_time)",
"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, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}", 0);
char *enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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/holiday-list?\"filter\"=%s&sort_by=%s&page=%s&per_page=%s", enc_"filter", enc_sort_by, 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_sort_by);
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""] = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}";
query["sort_by"] = "ASC(last_modified_time)";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list") { Query = query.ToString() };
var request = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
#include <iostream>
#include <string>
#include <curl/curl.h>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl = curl_easy_init();
if (curl) {
std::string response;
char* enc_"filter" = curl_easy_escape(curl, "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}", 0);
char* enc_sort_by = curl_easy_escape(curl, "ASC(last_modified_time)", 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/holiday-list";
url += "?"filter"=" + std::string(enc_"filter");
url += "&sort_by=" + std::string(enc_sort_by);
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_sort_by);
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 "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}" "UTF-8")
enc-sort_by (java.net.URLEncoder/encode "ASC(last_modified_time)" "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/holiday-list" "?"filter"=" enc-"filter" "&sort_by=" enc-sort_by "&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/holiday-list", nil)
q := req.URL.Query()
q.Add(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}")
q.Add("sort_by", "ASC(last_modified_time)")
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/holiday-list?%22filter%22=%7B%22criteria%22%3A%5B%7B%22cfid%22%3A%224000000000242%22%2C%22criteria_condition%22%3A%22contains%22%2C%22value%22%3A%5B%221752587000000097269%22%5D%7D%5D%2C%22pattern%22%3A%221+AND+2%22%7D&sort_by=ASC%28last_modified_time%29&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/holiday-list");
uriBuilder.addParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}");
uriBuilder.addParameter("sort_by", "ASC(last_modified_time)");
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/holiday-list';
const params = new URLSearchParams({
'"filter"': '{"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}',
'sort_by': 'ASC(last_modified_time)',
'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" = {"criteria":[{"cfid":"4000000000242","criteria_condition":"contains","value":["1752587000000097269"]}],"pattern":"1 AND 2"}
sort_by = "ASC(last_modified_time)"
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/holiday-list".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter(""filter"", "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}")
urlBuilder.addQueryParameter("sort_by", "ASC(last_modified_time)")
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" = [@"{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSort_by = [@"ASC(last_modified_time)" 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/holiday-list?"filter"=%@&sort_by=%@&page=%@&per_page=%@", encoded"filter", encodedSort_by, 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 "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}" in
let enc_sort_by = Uri.pct_encode "ASC(last_modified_time)" 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/holiday-list" ^ "?"filter"=" ^ enc_"filter" ^ "&sort_by=" ^ enc_sort_by ^ "&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" = "{`"criteria`":[{`"cfid`":`"4000000000242`",`"criteria_condition`":`"contains`",`"value`":[`"1752587000000097269`"]}],`"pattern`":`"1 AND 2`"}"
sort_by = "ASC(last_modified_time)"
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/holiday-list" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list"
params <- list(
"filter" = "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}",
sort_by = "ASC(last_modified_time)",
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/holiday-list")!
components.queryItems = [
URLQueryItem(name: ""filter"", value: "{\"criteria\":[{\"cfid\":\"4000000000242\",\"criteria_condition\":\"contains\",\"value\":[\"1752587000000097269\"]}],\"pattern\":\"1 AND 2\"}"),
URLQueryItem(name: "sort_by", value: "ASC(last_modified_time)"),
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 holiday list details using its ID.
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/holiday-list/[HOLIDAY-LISTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]";
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/holiday-list/[HOLIDAY-LISTID]');
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/holiday-list/[HOLIDAY-LISTID]")
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/holiday-list/[HOLIDAY-LISTID]";
$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/holiday-list/[HOLIDAY-LISTID]"
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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]"
{: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/holiday-list/[HOLIDAY-LISTID]", 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/holiday-list/[HOLIDAY-LISTID] 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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]';
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/holiday-list/[HOLIDAY-LISTID]")
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/holiday-list/[HOLIDAY-LISTID]"];
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/holiday-list/[HOLIDAY-LISTID]" 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/holiday-list/[HOLIDAY-LISTID]" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]"
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/holiday-list/[HOLIDAY-LISTID]")!
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 business hours associated with the holiday list.
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]/associated-business-hours";
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours');
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours")
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours";
$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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours"
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours");
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours");
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours");
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours"
{: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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours", 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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours 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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours");
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours';
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours")
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours"];
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours" 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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours" -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]/associated-business-hours"
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/holiday-list/[HOLIDAY-LISTID]/associated-business-hours")!
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 holidays for the specified year from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.READ
Query Parameter
int
Enter the year.
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/holiday-list/[HOLIDAY-LISTID]/holidays?year=2025&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]/holidays";
params = Map();
params.put("year", 2025);
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/holiday-list/[HOLIDAY-LISTID]/holidays');
url.searchParams.append('year', '2025');
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/holiday-list/[HOLIDAY-LISTID]/holidays")
params = {
"year" => "2025",
"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 = [
'year' => '2025',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]/holidays" . "?" . 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/holiday-list/[HOLIDAY-LISTID]/holidays"
params = {
"year": "2025",
"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_year = curl_easy_escape(curl, "2025", 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/holiday-list/[HOLIDAY-LISTID]/holidays?year=%s&page=%s&per_page=%s", enc_year, 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_year);
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["year"] = "2025";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]/holidays") { 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_year = curl_easy_escape(curl, "2025", 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/holiday-list/[HOLIDAY-LISTID]/holidays";
url += "?year=" + std::string(enc_year);
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_year);
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-year (java.net.URLEncoder/encode "2025" "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/holiday-list/[HOLIDAY-LISTID]/holidays" "?year=" enc-year "&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/holiday-list/[HOLIDAY-LISTID]/holidays", nil)
q := req.URL.Query()
q.Add("year", "2025")
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/holiday-list/[HOLIDAY-LISTID]/holidays?year=2025&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/holiday-list/[HOLIDAY-LISTID]/holidays");
uriBuilder.addParameter("year", "2025");
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/holiday-list/[HOLIDAY-LISTID]/holidays';
const params = new URLSearchParams({
'year': '2025',
'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));
year = 2025
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/holiday-list/[HOLIDAY-LISTID]/holidays".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("year", "2025")
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 *encodedYear = [@"2025" 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/holiday-list/[HOLIDAY-LISTID]/holidays?year=%@&page=%@&per_page=%@", encodedYear, 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_year = Uri.pct_encode "2025" 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/holiday-list/[HOLIDAY-LISTID]/holidays" ^ "?year=" ^ enc_year ^ "&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 = @{
year = "2025"
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/holiday-list/[HOLIDAY-LISTID]/holidays" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]/holidays"
params <- list(
year = "2025",
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/holiday-list/[HOLIDAY-LISTID]/holidays")!
components.queryItems = [
URLQueryItem(name: "year", value: "2025"),
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 holiday list in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.CREATE
Parameter
String
requiredmax length : 100
Enter the holiday list name.
JSONArray
max length : 10000array size : 0-700
Specify the holidays in the list.
JSONArray
max length : 10000array size : 0-50
Enter the business hours' details to associate.
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/holiday-list' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"id":"4000000062001"}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list";
params = Map();
params.put("name", "Pacific Holiday");
params.put("holidays", [{"name":"Pacific Holiday","holiday_date":"2025-08-15"}]);
params.put("associated_business_hours", [{"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/holiday-list');
const payload = JSON.stringify({"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"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/holiday-list")
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":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"id":"4000000062001"}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"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/holiday-list"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"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/holiday-list");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"associated_business_hours\":[{\"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/holiday-list");
request.Content = new StringContent(
@"{""name"":""Pacific Holiday"",""holidays"":[{""name"":""Pacific Holiday"",""holiday_date"":""2025-08-15""}],""associated_business_hours"":[{""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/holiday-list");
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\":\"Pacific Holiday\",\"holidays\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"associated_business_hours\":[{\"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/holiday-list"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"associated_business_hours\":[{\"id\":\"4000000062001\"}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Pacific Holiday\",\"holidays\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"associated_business_hours\":[{\"id\":\"4000000062001\"}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list", 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/holiday-list HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"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/holiday-list");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"associated_business_hours\":[{\"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/holiday-list';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"id":"4000000062001"}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"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/holiday-list")
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":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"id":"4000000062001"}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list"];
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\":\"Pacific Holiday\",\"holidays\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"associated_business_hours\":[{\"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/holiday-list" 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":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"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 = @'
{"name":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"id":"4000000062001"}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"associated_business_hours\":[{\"id\":\"4000000062001\"}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list")!
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":"Pacific Holiday","holidays":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"associated_business_hours":[{"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 holiday list in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.UPDATE
Parameter
String
requiredmax length : 100
Enter the holiday list name.
JSONArray
max length : 10000array size : 0-700
Specify the holidays in the list.
JSONArray
max length : 10000array size : 0-50
Enter the business hours' 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 PATCH \
'https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"name":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]";
params = Map();
params.put("name", "Pacific Holiday");
params.put("holidays", [{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}]);
params.put("associated_business_hours", [{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]);
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/holiday-list/[HOLIDAY-LISTID]');
const payload = JSON.stringify({"name":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]});
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/holiday-list/[HOLIDAY-LISTID]")
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":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => '{"name":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"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/holiday-list/[HOLIDAY-LISTID]"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"name":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]}'
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/holiday-list/[HOLIDAY-LISTID]");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"add\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"update\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"delete\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}]}],\"associated_business_hours\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"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.Patch, "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]");
request.Content = new StringContent(
@"{""name"":""Pacific Holiday"",""holidays"":[{""add"":[{""name"":""Pacific Holiday"",""holiday_date"":""2025-08-15""}],""update"":[{""id"":""4000000062001"",""name"":""Pacific Holiday"",""holiday_date"":""2025-08-15""}],""delete"":[{""id"":""4000000062001"",""name"":""Pacific Holiday"",""holiday_date"":""2025-08-15""}]}],""associated_business_hours"":[{""add"":[{""id"":""4000000062001""}],""remove"":[{""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/holiday-list/[HOLIDAY-LISTID]");
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\":\"Pacific Holiday\",\"holidays\":[{\"add\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"update\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"delete\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}]}],\"associated_business_hours\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"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/patch "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"add\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"update\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"delete\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}]}],\"associated_business_hours\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"name\":\"Pacific Holiday\",\"holidays\":[{\"add\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"update\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"delete\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}]}],\"associated_business_hours\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}]}]}")
req, _ := http.NewRequest("PATCH", "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]", 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/holiday-list/[HOLIDAY-LISTID] HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"name":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"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/holiday-list/[HOLIDAY-LISTID]");
HttpUriRequest requestObj = new HttpPatch(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"add\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"update\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"delete\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}]}],\"associated_business_hours\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"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/holiday-list/[HOLIDAY-LISTID]';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"name":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"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/holiday-list/[HOLIDAY-LISTID]")
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":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]"];
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\":\"Pacific Holiday\",\"holidays\":[{\"add\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"update\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"delete\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}]}],\"associated_business_hours\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"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/holiday-list/[HOLIDAY-LISTID]" 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":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]}|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":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"id":"4000000062001"}]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]" -Method PATCH -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]"
response <- PATCH(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"name\":\"Pacific Holiday\",\"holidays\":[{\"add\":[{\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"update\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}],\"delete\":[{\"id\":\"4000000062001\",\"name\":\"Pacific Holiday\",\"holiday_date\":\"2025-08-15\"}]}],\"associated_business_hours\":[{\"add\":[{\"id\":\"4000000062001\"}],\"remove\":[{\"id\":\"4000000062001\"}]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]")!
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":"Pacific Holiday","holidays":[{"add":[{"name":"Pacific Holiday","holiday_date":"2025-08-15"}],"update":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}],"delete":[{"id":"4000000062001","name":"Pacific Holiday","holiday_date":"2025-08-15"}]}],"associated_business_hours":[{"add":[{"id":"4000000062001"}],"remove":[{"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
Remove a holiday list from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.portals.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/holiday-list/[HOLIDAY-LISTID]' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]";
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/holiday-list/[HOLIDAY-LISTID]');
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/holiday-list/[HOLIDAY-LISTID]")
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/holiday-list/[HOLIDAY-LISTID]";
$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/holiday-list/[HOLIDAY-LISTID]"
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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]"
{: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/holiday-list/[HOLIDAY-LISTID]", 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/holiday-list/[HOLIDAY-LISTID] 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/holiday-list/[HOLIDAY-LISTID]");
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/holiday-list/[HOLIDAY-LISTID]';
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/holiday-list/[HOLIDAY-LISTID]")
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/holiday-list/[HOLIDAY-LISTID]"];
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/holiday-list/[HOLIDAY-LISTID]" 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/holiday-list/[HOLIDAY-LISTID]" -Method DELETE -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/holiday-list/[HOLIDAY-LISTID]"
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/holiday-list/[HOLIDAY-LISTID]")!
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()
This module covers task automation related operations within Zoho Projects. Use this API to configure and manage automation features such as Blueprints, Custom Functions, Webhooks, Workflow Rules, Email Templates, Email Alerts, and Macro Rules.
This module covers blueprint related operations within Zoho Projects. Use this API to create, update, delete, or retrieve blueprints, manage graph data, save drafts, and execute transitions for task automation.
Retrieve all blueprints configured in the Zoho Projects portal.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
String
requiredEnter the module name. Accepted value: Task
int
Enter the page number to retrieve.
int
Enter the number of records to display 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/automation/blueprints?module_name=Task&page=1&per_page=10' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprints";
params = Map();
params.put("module_name", "Task");
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/automation/blueprints');
url.searchParams.append('module_name', 'Task');
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/automation/blueprints")
params = {
"module_name" => "Task",
"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_name' => 'Task',
'page' => '1',
'per_page' => '10',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprints" . "?" . 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/automation/blueprints"
params = {
"module_name": "Task",
"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_name = curl_easy_escape(curl, "Task", 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/automation/blueprints?module_name=%s&page=%s&per_page=%s", enc_module_name, 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_name);
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_name"] = "Task";
query["page"] = "1";
query["per_page"] = "10";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprints") { 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_name = curl_easy_escape(curl, "Task", 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/automation/blueprints";
url += "?module_name=" + std::string(enc_module_name);
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_name);
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_name (java.net.URLEncoder/encode "Task" "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/automation/blueprints" "?module_name=" enc-module_name "&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/automation/blueprints", nil)
q := req.URL.Query()
q.Add("module_name", "Task")
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/automation/blueprints?module_name=Task&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/automation/blueprints");
uriBuilder.addParameter("module_name", "Task");
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/automation/blueprints';
const params = new URLSearchParams({
'module_name': 'Task',
'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_name = "Task"
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/automation/blueprints".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module_name", "Task")
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_name = [@"Task" 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/automation/blueprints?module_name=%@&page=%@&per_page=%@", encodedModule_name, 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_name = Uri.pct_encode "Task" 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/automation/blueprints" ^ "?module_name=" ^ enc_module_name ^ "&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_name = "Task"
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/automation/blueprints" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprints"
params <- list(
module_name = "Task",
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/automation/blueprints")!
components.queryItems = [
URLQueryItem(name: "module_name", value: "Task"),
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 list of transitions available to execute after the current transition in a blueprint
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
long
requiredEnter the record ID.
String
requiredEnter the module name. Accepted value: Task
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/automation/blueprint/next-transitions?entity_id=11000000000371&module_name=Task' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions";
params = Map();
params.put("entity_id", "11000000000371");
params.put("module_name", "Task");
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/automation/blueprint/next-transitions');
url.searchParams.append('entity_id', '11000000000371');
url.searchParams.append('module_name', 'Task');
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/automation/blueprint/next-transitions")
params = {
"entity_id" => "11000000000371",
"module_name" => "Task"
}
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 = [
'entity_id' => '11000000000371',
'module_name' => 'Task',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions" . "?" . 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/automation/blueprint/next-transitions"
params = {
"entity_id": "11000000000371",
"module_name": "Task"
}
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_entity_id = curl_easy_escape(curl, "11000000000371", 0);
char *enc_module_name = curl_easy_escape(curl, "Task", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions?entity_id=%s&module_name=%s", enc_entity_id, enc_module_name);
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_entity_id);
curl_free(enc_module_name);
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["entity_id"] = "11000000000371";
query["module_name"] = "Task";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions") { 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_entity_id = curl_easy_escape(curl, "11000000000371", 0);
char* enc_module_name = curl_easy_escape(curl, "Task", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions";
url += "?entity_id=" + std::string(enc_entity_id);
url += "&module_name=" + std::string(enc_module_name);
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_entity_id);
curl_free(enc_module_name);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-entity_id (java.net.URLEncoder/encode "11000000000371" "UTF-8")
enc-module_name (java.net.URLEncoder/encode "Task" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions" "?entity_id=" enc-entity_id "&module_name=" enc-module_name)]
(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/automation/blueprint/next-transitions", nil)
q := req.URL.Query()
q.Add("entity_id", "11000000000371")
q.Add("module_name", "Task")
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/automation/blueprint/next-transitions?entity_id=11000000000371&module_name=Task 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/automation/blueprint/next-transitions");
uriBuilder.addParameter("entity_id", "11000000000371");
uriBuilder.addParameter("module_name", "Task");
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/automation/blueprint/next-transitions';
const params = new URLSearchParams({
'entity_id': '11000000000371',
'module_name': 'Task'
});
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));
entity_id = "11000000000371"
module_name = "Task"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/automation/blueprint/next-transitions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("entity_id", "11000000000371")
urlBuilder.addQueryParameter("module_name", "Task")
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 *encodedEntity_id = [@"11000000000371" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedModule_name = [@"Task" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions?entity_id=%@&module_name=%@", encodedEntity_id, encodedModule_name];
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_entity_id = Uri.pct_encode "11000000000371" in
let enc_module_name = Uri.pct_encode "Task" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions" ^ "?entity_id=" ^ enc_entity_id ^ "&module_name=" ^ enc_module_name) 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 = @{
entity_id = "11000000000371"
module_name = "Task"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/next-transitions"
params <- list(
entity_id = "11000000000371",
module_name = "Task"
)
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/automation/blueprint/next-transitions")!
components.queryItems = [
URLQueryItem(name: "entity_id", value: "11000000000371"),
URLQueryItem(name: "module_name", value: "Task")
]
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
Retrieve the list of actions configured to execute when a specific blueprint transition is performed.
OAuth Scope:
ZohoProjects.tasks.READ
Query Parameter
long
requiredEnter the record ID.
boolean
Specify whether to skip issue validation during transition execution. By default, transitions cannot be executed if the associated task has open issues. 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 GET \
'https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions?entity_id=11000000000371&skip_bug_validation=true' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions";
params = Map();
params.put("entity_id", "11000000000371");
params.put("skip_bug_validation", "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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions');
url.searchParams.append('entity_id', '11000000000371');
url.searchParams.append('skip_bug_validation', '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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions")
params = {
"entity_id" => "11000000000371",
"skip_bug_validation" => "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 = [
'entity_id' => '11000000000371',
'skip_bug_validation' => 'true',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions" . "?" . 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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions"
params = {
"entity_id": "11000000000371",
"skip_bug_validation": "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_entity_id = curl_easy_escape(curl, "11000000000371", 0);
char *enc_skip_bug_validation = curl_easy_escape(curl, "true", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions?entity_id=%s&skip_bug_validation=%s", enc_entity_id, enc_skip_bug_validation);
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_entity_id);
curl_free(enc_skip_bug_validation);
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["entity_id"] = "11000000000371";
query["skip_bug_validation"] = "true";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions") { 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_entity_id = curl_easy_escape(curl, "11000000000371", 0);
char* enc_skip_bug_validation = curl_easy_escape(curl, "true", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions";
url += "?entity_id=" + std::string(enc_entity_id);
url += "&skip_bug_validation=" + std::string(enc_skip_bug_validation);
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_entity_id);
curl_free(enc_skip_bug_validation);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-entity_id (java.net.URLEncoder/encode "11000000000371" "UTF-8")
enc-skip_bug_validation (java.net.URLEncoder/encode "true" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions" "?entity_id=" enc-entity_id "&skip_bug_validation=" enc-skip_bug_validation)]
(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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions", nil)
q := req.URL.Query()
q.Add("entity_id", "11000000000371")
q.Add("skip_bug_validation", "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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions?entity_id=11000000000371&skip_bug_validation=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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions");
uriBuilder.addParameter("entity_id", "11000000000371");
uriBuilder.addParameter("skip_bug_validation", "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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions';
const params = new URLSearchParams({
'entity_id': '11000000000371',
'skip_bug_validation': '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));
entity_id = "11000000000371"
skip_bug_validation = "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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("entity_id", "11000000000371")
urlBuilder.addQueryParameter("skip_bug_validation", "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 *encodedEntity_id = [@"11000000000371" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *encodedSkip_bug_validation = [@"true" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions?entity_id=%@&skip_bug_validation=%@", encodedEntity_id, encodedSkip_bug_validation];
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_entity_id = Uri.pct_encode "11000000000371" in
let enc_skip_bug_validation = Uri.pct_encode "true" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions" ^ "?entity_id=" ^ enc_entity_id ^ "&skip_bug_validation=" ^ enc_skip_bug_validation) 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 = @{
entity_id = "11000000000371"
skip_bug_validation = "true"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions"
params <- list(
entity_id = "11000000000371",
skip_bug_validation = "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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/during-actions")!
components.queryItems = [
URLQueryItem(name: "entity_id", value: "11000000000371"),
URLQueryItem(name: "skip_bug_validation", 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
Execute a specific transition within a blueprint.
OAuth Scope:
ZohoProjects.tasks.READ
Parameter
long
requiredEnter the record(task) ID.
boolean
Specify whether to skip issue validation during transition execution. By default, transitions cannot be executed if the associated task has open issues. Accepted values: true or false
JSONArray
array size : 0-200Enter the field values to be updated during the blueprint transition.
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute";
params = Map();
params.put("entity_id", "11000000000371");
params.put("skip_bug_validation", "true");
params.put("field_values", [{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]);
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute');
const payload = JSON.stringify({"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]});
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute")
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 = '{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}',
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}'
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"entity_id\":\"11000000000371\",\"skip_bug_validation\":\"true\",\"field_values\":[{\"id\":\"11000000000371\",\"value\":[1752587000000097269],\"is_days\":\"true\",\"attachment_ids\":[\"12345678987654321\"]}]}");
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute");
request.Content = new StringContent(
@"{""entity_id"":""11000000000371"",""skip_bug_validation"":""true"",""field_values"":[{""id"":""11000000000371"",""value"":[1752587000000097269],""is_days"":""true"",""attachment_ids"":[""12345678987654321""]}]}",
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute");
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, "{\"entity_id\":\"11000000000371\",\"skip_bug_validation\":\"true\",\"field_values\":[{\"id\":\"11000000000371\",\"value\":[1752587000000097269],\"is_days\":\"true\",\"attachment_ids\":[\"12345678987654321\"]}]}");
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"entity_id\":\"11000000000371\",\"skip_bug_validation\":\"true\",\"field_values\":[{\"id\":\"11000000000371\",\"value\":[1752587000000097269],\"is_days\":\"true\",\"attachment_ids\":[\"12345678987654321\"]}]}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"entity_id\":\"11000000000371\",\"skip_bug_validation\":\"true\",\"field_values\":[{\"id\":\"11000000000371\",\"value\":[1752587000000097269],\"is_days\":\"true\",\"attachment_ids\":[\"12345678987654321\"]}]}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute", 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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"entity_id\":\"11000000000371\",\"skip_bug_validation\":\"true\",\"field_values\":[{\"id\":\"11000000000371\",\"value\":[1752587000000097269],\"is_days\":\"true\",\"attachment_ids\":[\"12345678987654321\"]}]}";
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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute")
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("""{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute"];
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 = [@"{\"entity_id\":\"11000000000371\",\"skip_bug_validation\":\"true\",\"field_values\":[{\"id\":\"11000000000371\",\"value\":[1752587000000097269],\"is_days\":\"true\",\"attachment_ids\":[\"12345678987654321\"]}]}" 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/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute" 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|{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}|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 = @'
{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"entity_id\":\"11000000000371\",\"skip_bug_validation\":\"true\",\"field_values\":[{\"id\":\"11000000000371\",\"value\":[1752587000000097269],\"is_days\":\"true\",\"attachment_ids\":[\"12345678987654321\"]}]}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/blueprint/[BLUEPRINTID]/transition/[TRANSITIONID]/execute")!
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 = """
{"entity_id":"11000000000371","skip_bug_validation":"true","field_values":[{"id":"11000000000371","value":[1752587000000097269],"is_days":"true","attachment_ids":["12345678987654321"]}]}
""".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_PARAMETER_VALUE HTTP 400
This module covers custom function related operations within Zoho Projects. Use this API to create, update, delete, or retrieve custom functions, manage gallery functions, execute custom functions, and enable or disable REST API for functions.
Execute a specific custom function configured in the Zoho Projects portal
OAuth Scope:
ZohoProjects.custom_functions.custom
Parameter
String
limit : 25Enter the additional parameter key-value pairs required for the custom function execution.
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/automation/customfunction/1752587000000097260/execute' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
--form 'Custom Parameter = " custom values"'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute";
params = Map();
params.put("Custom Parameter", " custom values");
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/automation/customfunction/1752587000000097260/execute');
url.searchParams.append('Custom Parameter', ' custom values');
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/automation/customfunction/1752587000000097260/execute")
params = {
"Custom Parameter" => " custom values"
}
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 = [
'Custom Parameter' => ' custom values',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute" . "?" . 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/automation/customfunction/1752587000000097260/execute"
params = {
"Custom Parameter": " custom values"
}
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_Custom Parameter = curl_easy_escape(curl, " custom values", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute?Custom Parameter=%s", enc_Custom Parameter);
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_Custom Parameter);
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["Custom Parameter"] = " custom values";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute") { 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_Custom Parameter = curl_easy_escape(curl, " custom values", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute";
url += "?Custom Parameter=" + std::string(enc_Custom Parameter);
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_Custom Parameter);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
(require '[clj-http.client :as client])
(let [enc-Custom Parameter (java.net.URLEncoder/encode " custom values" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute" "?Custom Parameter=" enc-Custom Parameter)]
(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/automation/customfunction/1752587000000097260/execute", nil)
q := req.URL.Query()
q.Add("Custom Parameter", " custom values")
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/automation/customfunction/1752587000000097260/execute?Custom+Parameter=+custom+values 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/automation/customfunction/1752587000000097260/execute");
uriBuilder.addParameter("Custom Parameter", " custom values");
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/automation/customfunction/1752587000000097260/execute';
const params = new URLSearchParams({
'Custom Parameter': ' custom values'
});
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));
Custom Parameter = " custom values"
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/automation/customfunction/1752587000000097260/execute".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("Custom Parameter", " custom values")
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 *encodedCustom Parameter = [@" custom values" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute?Custom Parameter=%@", encodedCustom Parameter];
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_Custom Parameter = Uri.pct_encode " custom values" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute" ^ "?Custom Parameter=" ^ enc_Custom Parameter) 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 = @{
Custom Parameter = " custom values"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute" + "?" + $queryString
$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/automation/customfunction/1752587000000097260/execute"
params <- list(
Custom Parameter = " custom values"
)
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/automation/customfunction/1752587000000097260/execute")!
components.queryItems = [
URLQueryItem(name: "Custom Parameter", value: " custom values")
]
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
Possible Errors
RESOURCE_NOT_FOUND HTTP 404
INVALID_PARAMETER_VALUE HTTP 400
The Bulk Read API in Zoho Projects helps you retrieve large datasets without affecting your daily API call limits. It is ideal for scheduled or large-scale data exports.
- Bulk read jobs are queued and processed one at a time. API response does not include the data immediately.
- You can provide a URL that supports the HTTP POST method to receive a callback when the export is complete.
- The exported data will be available as a downloadable CSV ZIP file.
Send a POST request to initiate a bulk read job. Include the module name and the list of fields to export.
Once the export is complete, you will receive a status and download_url in the call back request. Use the download_url to download the ZIP file containing CSV exports.
- Only one initial fetch is allowed per module per day.
- A maximum of five sync fetch exports are allowed per module per day.
- Only Admin profile users can access this API.
- Exported files are available only for one day after completion.
Retrieve the field metadata for the specified modules from the Zoho Projects portal. The fields returned will be aggregated from all layouts of the selected modules.
OAuth Scope:
ZohoProjects.bulk.READ
Query Parameter
String
requiredEnter the module names in a comma-separated list. Accepted values: projects,projects_comments,milestones,tasks,timesheets,bugs,users,teams,tags,milestone_invoice,portal_users,project_groups,portal_clients,project_clients,task_workhrs,project_group_users,task_status_timeline,custom_status,task_invoice,issue_comments,milestone_comments,issue_status_timeline,milestone_status_timeline
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/bulk/export/fields?module=projects' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/fields";
params = Map();
params.put("module", "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/bulk/export/fields');
url.searchParams.append('module', '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/bulk/export/fields")
params = {
"module" => "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' => 'projects',
];
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/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/bulk/export/fields"
params = {
"module": "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, "projects", 0);
char url[2048];
snprintf(url, sizeof(url), "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/fields?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"] = "projects";
var uriBuilder = new UriBuilder("https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/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, "projects", 0);
std::string url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/fields";
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 "projects" "UTF-8")
url (str "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/fields" "?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/bulk/export/fields", nil)
q := req.URL.Query()
q.Add("module", "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/bulk/export/fields?module=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/bulk/export/fields");
uriBuilder.addParameter("module", "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/bulk/export/fields';
const params = new URLSearchParams({
'module': '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 = "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/bulk/export/fields".toHttpUrl().newBuilder()
urlBuilder.addQueryParameter("module", "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 = [@"projects" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlString = [NSString stringWithFormat:@"https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/fields?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 "projects" in
let uri = Uri.of_string ("https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/fields" ^ "?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 = "projects"
}
$queryString = ($params.GetEnumerator() | ForEach-Object { "$($_.Key)=$([System.Uri]::EscapeDataString($_.Value))" }) -join "&"
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export/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/bulk/export/fields"
params <- list(
module = "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/bulk/export/fields")!
components.queryItems = [
URLQueryItem(name: "module", value: "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
Possible Errors
UNAUTHORIZED HTTP 400
Create a bulk read job to export records of a module from the Zoho Projects portal.
OAuth Scope:
ZohoProjects.bulk.READ
Parameter
JSONArray
array size : >=0Enter the project IDs.
String
requiredEnter the module name. Accepted values: projects,projects_comments,milestones,tasks,timesheets,bugs,users,teams,tags,milestone_invoice,portal_users,project_groups,portal_clients,project_clients,task_workhrs,project_group_users,task_status_timeline,custom_status,task_invoice,issue_comments,milestone_comments,issue_status_timeline,milestone_status_timeline
String
requiredSpecify the export type. Accepted values: initialfetch syncfetch or deleted
String
Enter the time period for 'syncfetch' export type. E.g. 2025-06-20T10:00:00Z
String
requiredEnter a valid callback URL to receive export completion status.
String
Enter the field names to include in the export in a comma separated list.
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/bulk/export' \
-H 'Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa' \
-H 'Content-Type: application/json' \
-d '{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}'
url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export";
params = Map();
params.put("project_ids", ["4000000012001"]);
params.put("module_name", "projects");
params.put("export_type", "syncfetch");
params.put("time_period", "2025-06-20T10:00:00Z");
params.put("follow_url", "https://projectsapi.zoho.com");
params.put("fields", "project_id_df,project_name_df");
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/bulk/export');
const payload = JSON.stringify({"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"});
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/bulk/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 = '{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}'
response = http.request(request)
puts response.read_body
<?php
$url = "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}',
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/bulk/export"
headers = {
"Authorization": "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa",
"Content-Type": "application/json",
}
payload = '{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}'
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/bulk/export");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"project_ids\":[\"4000000012001\"],\"module_name\":\"projects\",\"export_type\":\"syncfetch\",\"time_period\":\"2025-06-20T10:00:00Z\",\"follow_url\":\"https://projectsapi.zoho.com\",\"fields\":\"project_id_df,project_name_df\"}");
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/bulk/export");
request.Content = new StringContent(
@"{""project_ids"":[""4000000012001""],""module_name"":""projects"",""export_type"":""syncfetch"",""time_period"":""2025-06-20T10:00:00Z"",""follow_url"":""https://projectsapi.zoho.com"",""fields"":""project_id_df,project_name_df""}",
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/bulk/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, "{\"project_ids\":[\"4000000012001\"],\"module_name\":\"projects\",\"export_type\":\"syncfetch\",\"time_period\":\"2025-06-20T10:00:00Z\",\"follow_url\":\"https://projectsapi.zoho.com\",\"fields\":\"project_id_df,project_name_df\"}");
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/bulk/export"
{:headers {"Authorization" "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"
"Content-Type" "application/json"}
:body "{\"project_ids\":[\"4000000012001\"],\"module_name\":\"projects\",\"export_type\":\"syncfetch\",\"time_period\":\"2025-06-20T10:00:00Z\",\"follow_url\":\"https://projectsapi.zoho.com\",\"fields\":\"project_id_df,project_name_df\"}"
:as :json}))
(println (:body response))
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader("{\"project_ids\":[\"4000000012001\"],\"module_name\":\"projects\",\"export_type\":\"syncfetch\",\"time_period\":\"2025-06-20T10:00:00Z\",\"follow_url\":\"https://projectsapi.zoho.com\",\"fields\":\"project_id_df,project_name_df\"}")
req, _ := http.NewRequest("POST", "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/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/bulk/export HTTP/1.1
Host: projectsapi.zoho.com
Authorization: Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa
Content-Type: application/json
{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}
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/bulk/export");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
requestObj.addHeader("Authorization", "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa");
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
String requestBody = "{\"project_ids\":[\"4000000012001\"],\"module_name\":\"projects\",\"export_type\":\"syncfetch\",\"time_period\":\"2025-06-20T10:00:00Z\",\"follow_url\":\"https:\/\/projectsapi.zoho.com\",\"fields\":\"project_id_df,project_name_df\"}";
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/bulk/export';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa',
'Content-Type': 'application/json'
},
body: JSON.stringify({"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}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/bulk/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("""{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}""") }
val response = conn.inputStream.bufferedReader().readText()
println(response)
}
NSURL *url = [NSURL URLWithString:@"https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/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 = [@"{\"project_ids\":[\"4000000012001\"],\"module_name\":\"projects\",\"export_type\":\"syncfetch\",\"time_period\":\"2025-06-20T10:00:00Z\",\"follow_url\":\"https://projectsapi.zoho.com\",\"fields\":\"project_id_df,project_name_df\"}" 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/bulk/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|{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}|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 = @'
{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}
'@
$response = Invoke-RestMethod -Uri "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export" -Method POST -Headers $headers -Body $body
$response | ConvertTo-Json
library(httr)
url <- "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/export"
response <- POST(
url,
add_headers(Authorization = "Bearer 1000.03xxxxxxxxxxxxxxxxxa5317.dxxxxxxxxxxxxxxxxxfa"),
content_type_json(),
body = "{\"project_ids\":[\"4000000012001\"],\"module_name\":\"projects\",\"export_type\":\"syncfetch\",\"time_period\":\"2025-06-20T10:00:00Z\",\"follow_url\":\"https://projectsapi.zoho.com\",\"fields\":\"project_id_df,project_name_df\"}"
)
content(response, "text")
import Foundation
let url = URL(string: "https://projectsapi.zoho.com/api/v3/portal/739121528/bulk/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 = """
{"project_ids":["4000000012001"],"module_name":"projects","export_type":"syncfetch","time_period":"2025-06-20T10:00:00Z","follow_url":"https://projectsapi.zoho.com","fields":"project_id_df,project_name_df"}
""".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
LIMIT_REACHED HTTP 403
TIME_PERIOD_EXCEED HTTP 403
FORBIDDEN HTTP 403
UNAUTHORIZED HTTP 401
JSONArray
max length : 10000array size : >=0
Enter the list of filter conditions. Each condition is combined using the pattern.