An application program interface (API) is a set of methods and routines for building software applications. As well as the core APIs (the node, user, and taxonomy systems, etc.), there are several important APIs made available through contributed modules. Using these contributed APIs can both greatly ease your module development and also increase interoperability with other Drupal modules.
The Views module provides a flexible method to control how lists of posts are retrieved and presented. See the Views Module Developer API for detailed instructions on how to expose your module's tables and fields to views operations.
Actions and Workflows
The actions module allows the configuration of Drupal actions. A Drupal action is a specially written PHP function whose parameters are configured through the web. For example, the Send Email action has parameters Recipient, Subject, and Message.
The workflow module allows the creation and assignment of arbitrary workflows to Drupal node types. Workflows are made up of workflow states. For example, a workflow with the states Draft, Review, and Published could be assigned to the Story node type.
Together, actions and workflows provide powerful and handy module implementation tools.
Libraries API addresses the problem of different modules including the same third-party library multiple times and accidentally creating version conflicts or double-inclusions errors. When modules use Libraries API (and the module) a library is downloaded once in sites/all/libraries (or site-specific libraries folder) much like a theme and all modules that need it can use the library from a central location.
For the instructions of integrating your module with the Libraries API, please refer to the How to use Libraries API guide.
E-Commerce comes with a developed API to facilitate extension of the suite of modules. The developer documentation provides a quick introduction to the API designed to get you started developing E-Commerce solutions.
The Location module provides geographic functionality related to addresses, and includes an API for working with and extending the included functionality. For developer documentation, see the files location_API.txt and extending_support.txt included with the Location distribution.
Module can add/remove/edit subscribers from groups using the API functions provided in the module. Modules can also create/delete groups since groups are just nodes of type=og. See the contrib directory in the og package to see examples of modules using this API (ecommerce integration, civicrm integration, forum integration, book integration, etc.).
Modules are notified on message send, delete and prune and given a chance to alter the message before view (since DRUPAL-5--2). File attachments for private messages are an obvious example (in the works).
Some modules add new form elements, which can be used with the core form elements available in the Form API. One example is the Active Select module, which provides a new type of form element called an 'activeselect'. When a user selects a new option (or set of options) from an activeselect box, one or more different select elements (the target elements) get their lists updated using AJAX. Module developers can use Active Select to create a 'drill-down' interface, where users can easily navigate and select from hierarchical information (e.g. selecting 'countries', 'states', and 'cities' in a form).