Update Service Catalog Items (Bundles) dynamically

Hey Folks!

I am new to this community, here is my first request:

This involves the development of a Python script for integration with the Freshservice API. The aim is to dynamically synchronize service catalog items, in particular bundles (articles with additional items), and to ensure that the IDs used are correct and that the articles in the bundle are consistent with the data and availability of the individual article.

If, for example, an item contained in the bundle (is_bundle) is deleted or the title is changed, the script running via cron should also adjust the title in all bundles in which the item appears or remove it if it no longer exists. In other words, the changes to the individual items are synchronized across existing additional items that are present in bundles.

Now that either the “display-id” or the “item_id” is used correctly in the appropriate places, the logic is in place to determine whether and which changes need to be made, I’m running into a brick wall. :blush:

PROBLEM: It is not possible for me to update, delete and regenerate the items or anything similar. All attempts end in :

requests.exceptions.HTTPError: 405 Client Error: Method Not Allowed for url: https://xxxxxxx.freshservice.com/api/v2/service_catalog/items/54000289399

I can’t find any information about update, delete or PUT in the API. At least not as far as the “Service Catalog” area is concerned. Such functions are probably possible in other areas.

The following Support/Forum article also briefly addresses this topic. Although the author intended something different, “Freddy” says that an update would be possible in exactly the way I have chosen.

This statement is probably simply wrong, am I right here? Has anyone ever wanted to do the same thing? Or is it planned for the future to carry out updates, deletes, etc. in the service catalog via API?

Greetz!!

1 Like

Hey there and welcome!

You’re not alone—I’ve run into the same issue when working with the Freshservice API and trying to update or delete Service Catalog items, especially bundles. Unfortunately, you’re correct: the public API does not currently support full update (PUT) or delete (DELETE) operations for service catalog items. The 405 Method Not Allowed error you’re seeing confirms that those HTTP methods aren’t supported on that endpoint.

While the API does allow retrieving items (GET), and in some cases creating new ones (POST), there’s no official way to modify or delete existing service catalog entries via API. The forum reply you mentioned might be based on a misunderstanding or internal access that isn’t available through the public API.

Some suggestions/workarounds:

  • Track changes externally: Maintain a local copy (e.g., JSON or a database) of your catalog structure, including bundles and their items. Use a script to compare this against the latest API data and flag inconsistencies.
  • Use tags or custom fields: If modifying the item isn’t possible, consider tagging items or using custom fields to indicate their status (e.g., “Deprecated”, “Needs update”).
  • Recreate items: In some cases, you can create a new version of the bundle with updated items using POST, and then manually deactivate or archive the old one (since deletion isn’t available).
  • Contact Freshservice support: If this is a blocker for you, it’s worth reaching out to their support or your account manager. Some users have had internal endpoints enabled, or their feature requests escalated.

Hope that helps clarify things. You’re not doing anything wrong—the limitation is on Freshservice’s side. Good luck with your integration!

1 Like

Hi Bart,

Thanks a lot for your helpful response and for confirming my take on the situation. It’s good to know that I’m not the only one running into this limitation and that it’s indeed a restriction on Freshservice’s side—not a misstep in my implementation.

I really appreciate the alternative approaches you mentioned, especially the idea of maintaining a local reference for comparison. That seems like a practical workaround and I’ll definitely explore it further.

As you suggested, I’ll be reaching out to Freshdesk support to inquire whether there’s an internal solution, a possible workaround, or any plans to expand API functionality in this area. If you’re interested, I’d be happy to share any updates I receive.

Thanks again for taking the time to respond—much appreciated!

1 Like