Entity API

Overview Entity API

7, 8
Open bugs:
324 (Total 696 )
Open issues:
578 (Total 1.230 )


Entity Translation | Entity Embed | Entity Browser | Entity Reference Revisions | Entity Collection | Entity view modes | Entity menu links | Entity Operations | Entity Dependency API | Entity Rules | Entity Pilot | Entity Scaffold | Entity index | Entity Box Types | Entity Dialog | Entity Decorator | Entity Autocomplete | Entity bundle plugin | Entity validator | Entity modified | Entity Legal | Entity background | Entity Reviews | Entity JS | Entity Visits | Entity XLIFF | Entity Print | Entity Formatter | Entity List Field | Entity List Display | Entity Merge | Entity view count | Entity Reference Multiple | Entity Universally Unique IDentifier | Entity Email | Entity behaviors | Entity Image Style | Entity popup | Entity Soft Delete | Entity Quote | Entity mapper | Entity Blocks | Entity Override | Entity forms in blocks | Entity Lister | Entity status | Entity Hash | Entity notification | Entity Path | Entity iframe | Entity JSON | Entity Delete Log | Entity Claim | Entity RDF | Entity Abuse | Entity Rest Extra | Entity Bulk Delete | Entity bundle Redirect | Entity Recur | Entity Stream Wrapper | Entity Gallery | Entity Context | Entity Display Field | Entity Type Browser | Entity External Rating | Entity Panels | Entity Bundle Admin | Entity metadata hint generator | Entity Process Callback | Entity Enqueue | Entity Watchdog | Entity Notes | Entity Property Field | Entity Documentation | Entity Prevent Revision Deletes | Entity Reference URL Widget | Entity Data | Entity is Public | Entity Backend Search | Entity Score | Entity Extras | Entity Base Type | Entity Object API | Entity Reference Form | Entity Info Storage | CPS Entity Workflow | Entity Reference Formatter | Entity Storage Migrate API |


Posted by:



This module extends the entity API of Drupal core in order to provide a unified way to deal with entities and their properties. Additionally, it provides an entity CRUD controller, which helps simplifying the creation of new entity types.


  • Drupal 7.2 or later; suggested Drupal >= 7.15


You can find documentation in the handbooks. Also check the README and the provided API docs in entity.api.php.


For site-builders

This is an API module, so it doesn't provide any end-user features. However, it provides some entity generic functionality to other modules that site-builders may leverage:

  • A Views display plugin and field to render or link to any entity (by view-mode)
  • A CTools content plugin to render any entity (by view-mode)
  • It ships with the Entity tokens module which makes sure there are tokens for most entity properties and fields, i.e. it provides token replacements for all entity properties (or fields) that have no tokens and are known to the entity module (read about the entity property info API below).
For developers
  • The module provides API functions allowing modules to create, save, delete, view or to determine access for any entity, i.e. entity_create(), entity_save(), entity_delete(), entity_view() and entity_access().
  • The entity API introduces a unique place for metadata about entity relationships and entity properties: hook_entity_property_info(). This information about entity properties contains the data type and callbacks for how to get and set the data of a property. Modules may rely on this information in order to support any entity property, e.g. Rules and the Search API build upon that.
  • Furthermore the module provides data wrappers that make use of the available information to provide a simple and unified access to entities and their properties. For usage examples have a look at the README or the provided tests.
  • Beside that, the module helps you defining a new entity type. For that, it provides an entity controller, which implements full CRUD functionality for your entities. Optionally, entities may be created based on classes derived from the provided Entity class.
  • The entity API cares about creating fieldable, optionally revisionable entities as well as exportable entities. Additionally it supports implementing bundle entities, i.e. bundle objects (like node types) for fieldable entities implemented as (exportable) entities, for which the appropriate field API callbacks get automatically invoked.
  • For entity types implemented based upon the provided CRUD API the API is providing additional module integration too, i.e. Rules events are provided for all CRUD-related hooks, some basic entity property information for hook_entity_property_info() is provided and exportable entities are automatically integrated with the Features module. These module integrations are implemented in separate controller classes, which may be separately overridden or enabled/deactivated.
  • Optionally, the entity API also helps providing an administrative interface for managing entities, e.g. the UI for managing profile types of Profile 2 is built with that.


Please consult the change records in order to get a list of important changes - applicable to site builders and developers! Do not forget to run update.php after updating.

Compatibility note: If the i18n Translation Sets module (i18n_translation) is used, an i18n version of 1.5 or later is required!

Drupal 8

  • The Drupal 8 core Entity API is significantly improved, so most of the features provided by the Drupal 7 version are already present in Drupal core.
  • The Drupal 8 version of the Entity API module is used for improvements to Drupal 8's Entity API which will be moved to Drupal core one day (development ongoing)


The project has been sponsored by