Deleting an article attachment in Zoho Desk is done through a single authenticated DELETE API call that targets the specific attachment within a Help Center article. This guide walks you through the endpoint, required parameters, and what to verify afterwards.
---
Why this matters
When maintaining a Zoho Desk Help Center, outdated or incorrect files attached to knowledge base articles can confuse customers and damage trust. Rather than republishing an entire article, you can surgically remove a single attachment via the Zoho Desk REST API. This is especially useful in automated content-management workflows or when bulk-cleaning stale assets across many articles.
---
Step-by-step
Step 1. Gather the three identifiers you will need before making any API call: the helpcenterid (the ID of your Help Center portal), the articleid (the ID of the knowledge base article), and the attachment_id (the ID of the specific file you want to remove). You can retrieve these IDs from earlier GET calls against your Help Center or from the Zoho Desk admin UI. [1]
Step 2. Construct your DELETE request against the following endpoint, substituting the real values for each path segment:
DELETE /api/v1/helpcenter/{helpcenter_id}/articles/{article_id}/attachments/{attachment_id}
All three path parameters are required — omitting any one of them will result in a malformed URL that the API will reject. [1]
Step 3. If you are calling the endpoint from Python, the request looks like this:
def delete_article_attachment(self, helpcenter_id: str, article_id: str, attachment_id: str, p: dict = None):
return self.c.request(
"DELETE",
f"/api/v1/helpcenter/{helpcenter_id}/articles/{article_id}/attachments/{attachment_id}",
p,
None
)
The optional p parameter can carry any additional query-string values your integration requires; pass None if you have none. [1]
Step 4. Authenticate the request using your Zoho Desk OAuth 2.0 access token in the Authorization header (Authorization: Zoho-oauthtoken <your_token>). Without a valid token scoped to Desk Help Center write permissions, the API will return an authorisation error. [1]
Step 5. Send the request and inspect the HTTP response code. A 200 OK or 204 No Content response confirms the attachment has been removed. If you receive a 404, double-check that all three IDs are correct and belong to the same portal/article combination. [1]
---
Common pitfalls
- Mixing up attachment endpoints. Zoho Desk exposes separate
DELETEendpoints for attachments on accounts (/api/v1/accounts/{accountId}/attachments/{attachmentId}), tasks (/api/v1/tasks/{taskId}/attachments/{attachmentId}), and products (/api/v1/products/{productId}/attachments/{attachmentId}). [7][8][5] Using the wrong endpoint for an article attachment will return a404or silently fail — always use the Help Center–specific path shown in Step 2. [1]
- Incorrect
helpcenterid. If your Zoho Desk org has multiple Help Centers (e.g., one per brand), make sure thehelpcenteridmatches the portal where the article lives, not just any active Help Center in your account. [1]
- Stale attachment IDs. Attachment IDs are not reused after deletion. If you cache IDs from a previous
GETcall and the attachment was already removed, theDELETEwill return a404. Always fetch a fresh list of attachments before attempting deletion in automated scripts. [1]
---
What to check
- Confirm the attachment is gone by issuing a
GETrequest for the article's attachment list and verifying the deletedattachment_idno longer appears. [1] - Check article integrity — open the published article in your Help Center to ensure no broken file references or placeholder icons remain where the attachment was embedded. [1]
- Review API token scope — if the deletion succeeded in testing but fails in production, confirm the OAuth token used in production includes write/delete permissions for the Zoho Desk Help Center module. [1]
---
> Beam Help is an independent expert support resource for Zoho products and is not official Zoho support. For billing or account-level issues, please contact Zoho directly.