This project is not covered by Drupal’s security advisory policy.

Provides a clean set of API calls for working with taxonomy. Most of the core code has been taken from the taxonomy module, and turned into some smaller, more modular functions for use by other modules. Taxonomy REST provides some simple url based tools for adding and removing terms from nodes.

Taxonomy API

Taxonomy module does not really open up much of it's functionality to other modules. This means that, if your module needs to add or remove tags programmatically, then you have to end up duplicating a lot of the core taxonomy code. This module is an attempt to take a step to a clean interface to taxonomy functions. No actual end user functionality is added through this module.

Taxonomy REST

REST interfaces use URLs to interact with data. This module creates a set of URLs that will allow users with update privileges on a node to add and remove taxonomy terms using links rather than forms.

Add term 987 to node 123 :

Remove term 987 from node 123 :

Security Considerations

Since we are using GET urls to make updates to the host site, we need to be aware of security. The REST module requires that a form token be provided with each url (theme function provided for link generation). This token is bound to a specific node so there is no way that any link could be modified maliciously.

The REST interface checks to make sure that requests come from the originating server, however some browsers are not going to set this, so, there may, in theory, be some compatability issues.

Users must also have update rights on nodes to manage terms.


A high level description of how this module was initially developed and implemented is available at

Taxonomy API

The taxonomy api defines a set of simple functions for manipulating node taxonomy. The module is currently fairly well documented with each function explained.

An example implementation is available in the taxman module.

Taxonomy REST

This has been developed for The School Of Everything. Users are able to manage their "interests" through a set of tools. Taxonomy REST is used to allow for deletion of interest terms from profiles. (To try it out, sign up, and then add a few interests to your profile.)

To create a link to update a node's taxonomy, use the provided theme function theme('taxonomy_rest_link','delete', $nid, $term->tid, t('Remove'))

General Considerations

At the moment, this taxonomy API bypasses the normal node update process, which means that update actions are not triggered for nodeapi hooks. In most cases this will not be an issue.

This API is incompatible with the content_taxonomy module since that module implements it's magic via the form pre and post hooks. This module is also the reason we do not manually trigger any node update events because this resulted in taxonomy values being reset.

Project information

  • Module categories: Taxonomy
  • chart icon906 downloads
  • shield alertThis project is not covered by the security advisory policy.
    Use at your own risk! It may have publicly disclosed vulnerabilities.