Bulk Deletion of Zoho Projects Using Node.js and Zoho Projects API

Bulk Deletion of Zoho Projects Using Node.js and Zoho Projects API

Zoho Projects currently does not provide a built-in option to delete multiple projects in bulk from the UI. When working with testing environments or large numbers of temporary projects, deleting them one by one becomes time-consuming.

To address this, I created a small automation using Node.js and the Zoho Projects API to programmatically delete projects.

Below are the steps I followed.

Prerequisites
• Node.js installed
• Access to Zoho Projects portal
• Zoho API Self Client for OAuth authentication

Step 1 – Install Node.js

Download and install Node.js from:
https://nodejs.org

Verify installation:

node -v
npm -v

Step 2 – Create a working directory

cd Desktop
mkdir zoho-delete-projects
cd zoho-delete-projects

Step 3 – Initialize the Node project

npm init -y

Step 4 – Install Axios (HTTP client)

npm install axios

Step 5 – Create the script file

notepad deleteProjects.js

Step 6 – Add the following script

const axios = require("axios");

const TOKEN = "YOUR_ACCESS_TOKEN";
const PORTAL_ID = "YOUR_PORTAL_ID";

function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}

async function deleteProjects() {
try {

const res = await axios.get(
`https://projectsapi.zoho.in/restapi/portal/${PORTAL_ID}/projects/`,
{
headers: {
Authorization: `Zoho-oauthtoken ${TOKEN}`
}
}
);

const projects = res.data.projects;

console.log("Projects found:", projects.length);

for (const p of projects) {

const projectId = p.id_string;

await axios.delete(
`https://projectsapi.zoho.in/restapi/portal/${PORTAL_ID}/projects/${projectId}/`,
{
headers: {
Authorization: `Zoho-oauthtoken ${TOKEN}`
}
}
);

console.log("Deleted:", p.name);

// Delay added to avoid Zoho API rate limits
await sleep(2000);
}

} catch (err) {
console.log(err.response?.data || err.message);
}
}

deleteProjects();

Step 7 – Create a Self Client in Zoho API Console

https://api-console.zoho.com

Scopes used:

ZohoProjects.projects.READ
ZohoProjects.projects.DELETE

Step 8 – Generate a Grant Token

Step 9 – Convert the Grant Token to an Access Token

curl -X POST "https://accounts.zoho.in/oauth/v2/token" ^
-d "grant_type=authorization_code" ^
-d "client_id=CLIENT_ID" ^
-d "client_secret=CLIENT_SECRET" ^
-d "redirect_uri=https://www.zoho.com" ^
-d "code=GRANT_TOKEN"

Step 10 – Copy the access_token from the response.

Step 11 – Find your Portal ID

Example:

https://projects.zoho.in/portal/yourportalname

Portal ID = yourportalname

Step 12 – Update the script

const TOKEN = "ACCESS_TOKEN";
const PORTAL_ID = "yourportalname";

Step 13 – Run the script

node deleteProjects.js

The script will fetch the list of projects and delete them sequentially while respecting Zoho API rate limits.

    • Sticky Posts

    • Tip of the Week: Task Sorting

      I believe that sorting of tasks helps managing the activities in a better fashion. You might second it too . By default, the tasks are listed chronologically. However, you can sort the tasks either by its title, start date, end date, priority, created by and percentage completion. All you have to do is, click the Task Sorting option and select the required criteria. Few points to be noted about task sorting: This option is available in the Classic View only (within My Tasks, Tasks & Milestones section).
    • Tip # 3 - Follow And Add Followers To Your Project Modules

      Besides owning effective managers and quick-witted employees, you need to have supportive followers for accomplishing your project goals. Accompanying this note, today, lets run through a quick and easy tip on  'How to follow and add followers to your project activities?' . Follow the project activities all by yourself -Follow to get real-time milestone updates Milestones are nothing but your project goals, which can ultimately uplift your projects' quality to the next level. Now, users in the portal
    • Tip of the Week: Task Dependency (Duration in Hours)

      I hope the tip on task dependency helped in understanding how it works in Zoho Projects. In a real-time, the successor task may or may not start on the predecessor's completion date. On either case, a project management tool should allow the users to set dependency between tasks. Ain't it? In Zoho Projects, the Task Duration in Hours option allows the users to set dependency between tasks that ends and starts on the same day. The Portal Owner and Admin role users can activate this option from the
    • Tip of the Week: Task Dependency

      Task Dependency - a feature that allows the users to establish dependency / linking between tasks within the project. Points to be noted with respect to this feature: Task Dependency can be set only from the Dependency View section within the Tasks & Milestones module Tasks setup with duration (start & end date) will only be displayed in the Dependency View The supported dependency model is Finish to Start Dependency can be established only between the tasks in the same project A task can be dependent
    • Tip of the Week: Drag and Drop option in Calendar

      As the thoughts flow in your mind, you plan the tasks, provide duration and assign users. While you go through the calendar later, you feel that a couple of tasks should needs to be postponed by a couple of days. Do you navigate to the Tasks & Milestones section and change the task duration? is the question I have for you. In case of YES, I would say that the task duration can be changed from the Calendar module itself. All you need to do is: Drag the task bar and Drop it on the required date. Note:
      • Recent Topics

      • Grouping Undeposited Funds to Move to other accounts

        In the bank option it would be nice to check what transactions in undeposited funds I want to move to other accounts. Then while checking this it can accumulate totals and created whats essentially a deposit slip. Once the transaction is moved it should
      • Sync your CRM Tasks with Zoho Projects

        Zoho Projects integration with Zoho CRM helps you manage your tasks more efficiently. You can create all project related activities right inside your CRM using this integration. Create new portal or associate an existing portal, add projects to the portal,
      • Zoho CRM strips whitespace in text fields

        When editing field text with multiple spaces: CRM - both UI and API trim / compress the whitespace to a single space when saving: Is this known / expected / documented behaviour?
      • Custom Button makes scroll bar go down in report

        I have a report with a Custom button called Completed. A colleague mentionned to me that when he pressed this custom button it scrolled down the page which is annoying since he want to stay at the same space on the repoort. There is no reload linked to
      • Quickbooks Integrations Stopped Working

        All of our Quickbooks integrations have stopped working. I am checking in to see if: a) this is a known issue b) if anyone else is having this issue. As usual, Zoho support is unavailable.
      • sync two zoho crm

        Hello everyone. Is it possible to sync 2 zoho crm? what would be the easiest way? I am thinking of Flow. I have a Custom Module that I would like to share with my client. We both use zoho crm. Regards.
      • CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users

        Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
      • Incorrect Functioning of Time Logs API (Version 3)

        We need to fetch the list of time logs for each task for our company internal usage. We are trying to achieve it by using the next endpoint: https://projects.zoho.com/api-docs#bulk-time-logs#get-all-project-time-logs Firstly, in the documentation the
      • Zoho CRM Queries Now Support Databases and Cloud Data Sources

        Hello everyone! We're thrilled to announce a major enhancement to the Queries feature in Zoho CRM! Queries now support a broader range of external data sources, allowing you to fetch live data and combine it with CRM records, all using a unified query
      • Salesforceに添付ファイルを格納したい

        お世話になっております。 Salesforceに添付ファイルを格納したく、カスタムオブジェクトに連携し、 「ファイルのアップロード」項目を設けました。 実際、エラーもなく送信出来たのですが、実際生成されたカスタムオブジェクトのレコードを見ると、どこにも添付ファイルがありません。仕様として、この添付ファイルはSalesforceのどこに格納されるのでしょうか? 今回作りたいフォームは、複数の書類を添付するため、Zohoformのファイルアップロード項目「本人確認書類」「源泉徴収票」などの項目を、Salesforce側にも設けた「本人確認書類」「源泉徴収票」という各項目にURLリンクとして紐づけたいと思っておりました。
      • Dynamic image in form works in the app but not on the customer portal.

        img = frm_Fichas[ID == input.Nombre].Foto; imgno = Nophoto[ID2 = 1].Image; if(len(img) > 1) { img = img.replaceAll("/sharedBy/appLinkName/",zoho.appuri); img = img.replaceAll("viewLinkName","Fichas_de_personal_public"); img = img.replaceAll("fieldName","Foto");
      • Is it possible to retrieve function (Deluge) code from Zoho CRM externally?

        Hi Everyone, Is it possible to fetch or retrieve the Deluge function code from Zoho CRM using an external method (API or any other approach)? I would like to know if there is any way to access or extract the function script outside of Zoho CRM, or if
      • Uplifted homepage experience

        Editions: All editions. Availability update: 17th February 2026: All editions in the CA and SA DC | JP DC (Free, Standard and Professional editions) 23 February 2026: JP (All Editions) | AU, CN (Free, Standard, Professional editions) 27 February 2026:
      • Approval Workflow for Purchase Orders Abrir

        The requirement is , that all purchase orders greater than or equal to 5000 go through an approval process from certain people, but within books I only see that the approvers can be by levels or any approver but we cannot enter a rule like these. Can
      • WeTravel + Zoho CRM Integration - Has Anyone Built a Connector or Extension?

        Hi all, I'm exploring options for integrating Zoho CRM with WeTravel (booking & payment platform for tour operators). Zapier seems to be the common method but seems limited. I'm wondering if anyone in the community has developed a more comprehensive solution,
      • Option in pipeline deal to select which hotel or branch or store if client has more than one local store

        Hi, I would like to know if there is an option in the deal pipeline to select which hotel, branch, or store a deal is related to—if the company has more than one location. For example, I have a client that owns several hotels under the same company, and
      • Undo article like/dislike

        It seems to be not possible to undo your like/dislike for an article. Would be great if you can. Kind regards, Helen
      • Nested notebooks

        Dear Sir/Madam, I would like to know if it is possible to nest notebooks. It would be very helpful when there are too many, as it would improve organization. Thank you for your response. Best regards.
      • Tax in Quote

        Each row item in a quote has a tax value. At the total numbers at the bottom, there is also a Tax entry. If you select tax in both of the (line item, and the total), the tax doubles. My assumption is that the Tax total should be totalling the tax from
      • Dynamically Fetching Lookup Field Display Value

        I have an audit trail form, Audit_Changes, that tracks old vs new values across different forms. For lookup fields, the old/new value is the ID, but I also need the display value. What's a best practice for dynamically fetching the display value of the
      • Stop Scrolling, Start Asking: Meet Zia for Your Files

        Hey everyone 👋 The era of 'scrolling and searching' is officially over. Whether it's a dense legal contract or a long meeting recording, searching for specific details is a massive time-sink. We think you should be able to interact with your files, not
      • How do I open MSG files in Microsoft Word?

        If you want to open MSG files in Microsoft Word is not natively supported, as MSG is an email file format created by Microsoft Outlook. However, there are professional approaches to access MSG content in Word. First, open the MSG file in Outlook and copy
      • Unable to charge GST on shipping/packing & Forwarding charges in INDIA

        Currently, tax rates only apply to items. It does not apply tax to any shipping or packing & forwarding charges that may be on the order as well. However, these charges are taxable under GST in India. Please add the ability to apply tax to these charges.
      • How to add packing & forwarding charge in purchase order & quotation???

        Hello Zoho Team I have just started using Zoho for my company and I wanted to make purchase order. My supplier charges fix 2% as packing & forwarding on Total amount of material and then they charge me tax. For example, Material 1 = 100 Rs Material 2
      • How to create a boxplot chart in Zoho Analytics?

        Hi, I'm looking forward to making a boxplot in Zoho Analytics, either with all my data or with a time segmentation. No documentation or YouTube video explaining that was found. I guess this is a feature gap. How feasible would it be to add this to Analytics?
      • What are the create bill API line item requiered fields

        While the following documentation says that the line items array is requiered it doesn't say what if any files are requiered in the array. Does anyone know? API documentation: https://www.zoho.com/inventory/api/v1/bills/#create-a-bill I'm trying to add
      • WorkDrive issues with Windows Explorer Not Responding

        We are using WorkDrive to collaborate on editing video content. We have a lot of files and quite a few are a few gigs. Recently anytime I try and work with the files Explorer freezes for a couple minutes whether it's dragging the files into Premiere or
      • Connecting Zoho Inventory to ShipStation

        we are looking for someone to help connect via API shipStation with Zoho inventory. Any ideas? Thanks. Uri
      • Where is the settings option in zoho writer?

        hi, my zoho writer on windows has menu fonts too large. where do i find the settings to change this option? my screen resolution is correct and other apps/softwares in windows have no issues. regards
      • Using IMAP configuration for shared email inboxes

        Our customer service team utilizes shared email boxes to allow multiple people to view and handle incoming customer requests. For example, the customer sends an email to info@xxxx.com and multiple people can view it and handle the request. How can I configure
      • When Does WorkDrive integrate with Books?

        When Does WorkDrive integrate with Books?
      • POP mailbox limits

        If I am accessing a remote POP mail server using Zoho Mail is there a mailbox quota for the account or is it all related to my mail account storage limits?
      • Warranty Service and Repair in Zoho FSM

        Hi There, We are a retail store that sells products and also performs installations and repairs. Our field technicians handle this work. Some repairs are covered by manufacturers, who reimburse us for both parts and labour. In these cases, we perform
      • Zoho Sheet for Desktop

        Does Zoho plans to develop a Desktop version of Sheet that installs on the computer like was done with Writer?
      • WhatsApp phone number migration

        Hi @Gowri V and @Pheranda Nongpiur, Thanks for implementing the promised enhancements to the integration between Zoho CRM and WhatsApp. The previous discussion has been locked, so I'm opening this new one. I am copying below a specific
      • WebDAV support

        I need WebDAV support so that I can upload/download (and modify) documents from my local file system. Is anything planned in his direction?
      • SPF: HELO does not publish an SPF Record

        I am using Zoho mail. Completed all of the required prerequisites from the dashboard to avoid any issues with mail delivery. But when checking on mail-tester.com getting the following error. Can anyone help me solve this?
      • How do I create an update to the Cost Price from landed costs?

        Hi fellow Zoho Inventory battlers, I am new to Zoho inventory and was completely baffled to find that the cost price of products does not update when a new purchase order is received. The cost price is just made up numbers I start with when the product
      • Price Managment

        I have been in discussions with Zoho for some time and not getting what I need. Maybe someone can help explain the logic behind this for me as I fail to understand. When creating an item, you input a sales rate and purchase rate. These rates are just
      • Regarding the integration of Apollo.io with Zoho crm.

        I have been seeing for the last 3 months that your Apollo.io beta version is available in Zoho Flow, and this application has not gone live yet. We requested this 2 months ago, but you guys said that 'we are working on it,' and when we search on Google
      • Next Page