Beam Help
Get help now

How-to · Zoho DESK

How to move products to trash in Zoho Desk

Delete multiple products by moving them to trash.

Moving products to trash in Zoho Desk is accomplished via a single DELETE API call to the /api/v1/products endpoint, which shifts the selected products into the trash rather than permanently deleting them.


Why this matters


When you need to retire or clean up product records in Zoho Desk without permanently destroying them, moving them to trash gives you a recoverable safety net. This is especially useful during catalogue reorganisations or when decommissioning products that may still be referenced in historical tickets. Knowing the correct API operation and required OAuth scopes ensures your integration or automation handles this cleanly.


Step-by-step


Step 1. Confirm your OAuth token includes the correct Zoho Desk scope before making any API call. For product and settings-level operations, your token should cover scopes such as Desk.settings.ALL or the relevant Desk.settings.DELETE permission. Without the right scope, the request will be rejected at the authorisation layer. [3]


Step 2. Construct your DELETE request targeting the products endpoint. The operation is deletemoveproductstotrash, and the base path is:


DELETE /api/v1/products

This endpoint accepts an optional query-parameter dictionary (p) that you can use to specify which product or products to move. [1]


Step 3. Pass any required filter or identifier parameters inside the p dictionary. For example, if you are using the Python client wrapper, the call looks like this:


result = client.delete_move_products_to_trash(p={"id": "your_product_id"})

The method sends a DELETE request to /api/v1/products with your parameters appended as query parameters. [1]


Step 4. Inspect the API response to confirm the operation succeeded. A successful trash operation will return a response object indicating the products have been moved. If the response contains an error code, check your scope configuration and parameter values before retrying. [1]


Step 5. If you are working in a multi-product integration that also handles articles or tickets, note that each entity type has its own dedicated trash endpoint. Articles use DELETE /api/v1/helpcenter/{helpcenter_id}/articles, and tickets use POST /api/v1/tickets/trash — these are separate operations and should not be confused with the products endpoint. [2] [4]


Common pitfalls


  • Missing or insufficient OAuth scopes. The most frequent cause of a failed request is a token that lacks the necessary Desk.settings.DELETE or Desk.settings.ALL scope. Always verify your ZOHODESKSCOPES configuration includes settings-level permissions before deploying. [3]

  • Confusing HTTP methods across entity types. Moving products to trash uses DELETE, while moving tickets to trash uses POST to /api/v1/tickets/trash. Mixing up the HTTP verb or endpoint path will result in a failed or unintended operation. [1] [4]

  • Omitting the p parameter. If no product identifier is supplied in the query parameters, the API may not know which records to act on. Always confirm what identifier fields the endpoint expects and include them in the p dictionary. [1]

  • Data centre mismatch. Zoho Desk is available across multiple data centres (.com, .eu, .in, etc.). Ensure your base URL matches the data centre where your Desk organisation is hosted, otherwise requests will fail or route incorrectly. [5]

What to check


  • Scope coverage: Verify that your active OAuth token includes Desk.settings.DELETE or Desk.settings.ALL and that the token has not expired. [3]
  • Correct endpoint and method: Confirm you are calling DELETE /api/v1/products — not the articles or tickets trash endpoints — and that product identifiers are passed in the p parameter. [1]
  • Response validation: After the call, check the API response for a success status and confirm the product no longer appears in your active product list (it should now be in the trash, recoverable if needed). [1]

---


*Beam Help is an independent expert support resource for Zoho users — we are not official Zoho support. For platform-level issues or billing queries, contact Zoho directly.*

Sources cited

  1. [1] DELETE /api/v1/products
  2. [2] DELETE /api/v1/helpcenter/{helpcenter_id}/articles
  3. [3] config.py
  4. [4] POST /api/v1/tickets/trash
  5. [5] server.py: build_zoho_links
  6. [6] server.py: chat
  7. [7] server.py: chat_plan_stream
Move Products to Trash | Beam Help