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:

    Nederlandse Hulpbronnen


      • Recent Topics

      • Kaizen #78 : How to disable clone record?

        Hello everyone! Welcome back to another interesting Kaizen post. In this post, let us discuss a workaround solution for the use case - How to disable clone record for a user. Requirement Consider that you want to disable the clone option for the Deals
      • Mail bounces due to bad reputation

        Good evening. I'm seeing these errors from both hotmail/outlook and yahoo, as well as hard bounce from Virgin Media and talktalk for some time now. Bounce category: Connection issues Reason: uncategorized-bounce Message: 4.7.650 The mail server [136.143.188.237]
      • Zoho Desk - Event Calendar View

        Hi Desk team, Are there any plans to introduce a calendar or timeline view for Events in Zoho Desk? It would be very helpful if we could see Events visually in a calendar and/or timeline. This is very helpful when desk side support activities need to
      • Email notification for followers

        Is there a way to enable email notification for followers of a support ticket? ie: Ticket #123 is owned by Agent#1, Agent#2 adds themselves as a follower. Whenever ticket #123 receives an email from the customer, Agent#1 receives an email. Agent#2 would
      • How to Automate an Unsubscribe based on Scoring

        I automatically assign a negative point score to bounced emails and would like to automate unsubscription of these emails from our Campaigns, without losing the contact data. (Oftentimes the lead is no longer at a business, but I want to keep the business
      • Set Default Status of Assembly to "Assembled" When Entered in UI

        I've just discovered the new "confirmed" status of Assemblies within Inventory. While I understand the intent of this (allowing for manufacturing planning and raw material stock allocation), it was initially confusing to me when manually entering some
      • Connection to other user

        Zoho Cliq handles sharing of Custom OAuth Connections that require individual user logins.
      • Support Bots and Automations in External Channels

        Hello Zoho Cliq Team, How are you? We actively use Zoho Cliq for collaboration, including with our external developers. For this purpose, external channels are a key tool since they work seamlessly within the same interface as all of our other channels
      • Zoho Inventory / Finance Suite - Extend Visibility of File Names on Attachment Fields

        Hi Inventory / Finance Suite team, I noticed recently that when you add an attachment field to a module in Inventory, only the first 8 characters of the file name are visible on the details view. 8 characters is not a useful amount and there is plenty
      • Social posts not saving as drafts or posting

        Over the past two days, I have written and modified the same post for 5 different channels 4 different times. They will neither save as draft, nor go through and load in the scheduler, nor will they post when I try to push it live now. In every case,
      • Add @Mention Notifications in Zoho Cliq for Zoho Project Mentions

        Hello Zoho Projects Team, We hope you are doing well. We would like to submit a feature request regarding "Projects Bot" Cliq bot notifications for @mentions inside Zoho Projects comments (Tasks and Issues). Current Behavior: At the moment, when someone
      • Can I add Conditional merge tags on my Templates?

        Hi I was wondering if I can use Conditional Mail Merge tags inside my Email templates/Quotes etc within the CRM? In spanish and in our business we use gender and academic degree salutations , ie: Dr., Dra., Sr., Srta., so the beginning of an email / letter
      • Related Lists in Email Templates

        Hi Zoho team, I would love to see a feature where related list information can easily be added to an email template (instead of mail merge). I have a client who books flights for their customers. They do this through a Flights module so all booked flights
      • Looking for other Zoho users in Canada

        I would like to find other users in Canada to share ideas and suggestions. To see if you are experiencing same issues re HST/taxes, banking, etc.
      • Drop Down Menu - Adding up values

        I have a form that has 22 drop down fields each having a value of 0-10 to choose from. Is it possible to have it add up the total value of those selected numbers and have it tally it up in another field at the end? So example: if each of the 22 fields
      • Bank Feeds

        Since Friday my bank feeds wont work. I have refreshed feeds, deactivate and reactivate and nothing is working
      • Zoho Books recurring invoicing link to a Zoho CRM Deal?

        With the Zoho CRM Finance Integration setup, normally when creating an invoice via Zoho CRM Finance Integration on a Deal, it creates the invoice in Zoho Books with the CRM Deal *Potential link for that invoice. Alternatively, if you create the invoice
      • Calculation on form submit not wokring unless i click F5

        I'm using the built in on succesful form submission option and running the code below but when i click submit my form just gets stuck with the blue loading icon and nothing happens until i click F5 and then the page reloads and the calculation does actually
      • Bank feeds not working properly

        My bank feeds (connected with UK Natwest bank) only refreshes with yesterdyas transactions and not giving me the transactions of today since last week, anoyne with the same problem or solition?
      • Error when subscribing to any iCal feed in Group Calendar

        When I try to add any iCal URL via Settings → Calendar → Calendars → Group Calendars → Manage → Subscribed by Group, Zoho pops up an ‘Internal Server Error’ and nothing is added in the ‘Subscribed by Group’ list. But - the feed then appears under my personal
      • Introducing SlyteUI : From Idea to a Working Interface in Minutes

        Hello everyone! Are you spending hours building basic UIs? Does even the smallest customization feel like a major task? CRM customization should feel intuitive and straightforward, not time consuming or exhausting. SlyteUI makes this possible by simplifying
      • Automatic Email Alerts for Errors in Zoho Creator Logs

        Hello, We would like to request a feature enhancement in Zoho Creator regarding error notifications. Currently, Zoho Creator allows users to view logs and errors for each application by navigating to Zoho Creator > Operations > Logs. However, there is
      • Feature Request: Estimated Delivery Date Display on Product Pages

        Dear Zoho Commerce Support Team I am writing to submit a feature request that I believe would greatly benefit all Zoho Commerce merchants: the ability to display an estimated delivery date directly on the product page. Today's e-commerce customers expect
      • Prefered Bin Missing in android APP

        Andoroid app dosent show preferred bin in the picklist. The workaround support reccomend is to use the computre to create the picklist. it shuld be information to be shown aas basic for the pciker.
      • UPS Label size when generated via Zoho

        We've integrated UPS with Zoho inventory. When creating and downloading the shipping labels they are created in a larger paper size. I'd like them to be generated to print on a 4x6 printer. Zoho have told me I need to do this within our UPS portal. UPS
      • Sessions

        When we close the POS Session the closing balance should be the opening balance of next session. But this auto fetching is not happening. When we do cash out for depositing cash to bank account it is recording as expenses (office supplied) in our zoho
      • Re: Application Architecture in Zoho Creator — A Platform-Specific Deep Dive

        A recent community post on application architecture made some excellent points about planning architecture early in Zoho Creator projects. The core message is right — Creator applications have a habit of growing organically into maintenance nightmares,
      • Marketer's Space: Bookmarks by Zoho Campaigns

        Hello Marketers, In this week's Marketer's Space, we'll look at a simple yet powerful feature that makes a big difference in your workflow: Bookmarks. Bookmarks is a built-in feature in Zoho Campaigns that enables you to create a personalized library
      • Zoho Commerce in multiple languages

        When will you be able to offer Zoho Commerce in more languages? We sell in multiple markets and want to be able to offer a local version of our webshop. What does the roadmap look like?
      • Zoho Forms for Vertical Studio Subscriber Organizations

        We’re excited to introduce the Zoho Forms integration with Vertical Studio. This allows you to capture data using forms and send it directly to your Vertical Studio modules. With this integration, form submissions can be used to create or update records,
      • Option+C shortcut conflict

        In the latest Cliq release, you introduced `Option+C` shortcut to start a new audio call. In Polish, `option+C` is used for letter `ć`. I changed this button combo but `Option+C` is still being blocked and doesn't allow me to write letter `ć`.
      • Announcing Zoho Sheet desktop app for macOS and Windows (Beta)

        Hello Sheet users, We know you’ve been waiting for this one. It has always been the top priority on our roadmap to provide a single native desktop app for macOS and Windows that works both online and offline. Today, we are excited to announce that the
      • What's New in Zoho Inventory | January - March 2026

        Hello users, The first quarter of 2026 has been dynamic! We’ve shipped a powerful set of updates in Zoho Inventory to enhance item control, improve warehouse efficiency, expand integration and reporting capabilities. From a unified item creation experience
      • Issue with Zoho Sheets

        Edit: Small Error of Opening doc and losing entire formatting while downloading to *.xlsx format. Also my formulas don't work while opening a document downloaded from Zoho sheets, since the colors aren't matched to the correct data. Even though the data
      • Permission Denied - Reports Module - Super Admin

        "Permission Denied Sorry, you cannot view this report because you do not have permission to access one or more of its modules. To view the report, please provide permission to access those modules in the Profiles and Organize Tabs settings." Fresh new
      • test environment

        Hello, we want to know if Zho expense has test environment to set up new rules etc.
      • Using Email Triggers on Zoho Flow

        Hello, I'm sending the email to create the variables as this article says: https://help.zoho.com/portal/en/kb/flow/user-guide/create-a-flow/articles/email-trigger#How_email_trigger_works But the collection of the variables only seems to work when the
      • How can I transfer data from Production to Development environment?

        Hi, I am using Creator V6 and would like to bring all the data in production to the Development and Testing environments? Is there an easy way of doing that or I have to export and import each table?
      • Zoho Analytics: Clarification on Email Schedule Limits in Basic Plan

        Hi Team, I have a question regarding the email scheduling limits in the Zoho Analytics Basic Plan. The plan shows that I can create 4 email schedules. However, I understand that schedule consumption is calculated based on recipients (i.e., 1 schedule
      • Exporting All Custom Functions in ZohoCRM

        Hello, All I've been looking for a way to keep about 30 functions that I have written in Zoho CRM updated in my own repository to use elsewhere in other instances. A github integration would be great, but a way to export all custom functions or any way
      • Next Page