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


This module provides an implementation the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) for Drupal with support for CCK content types and their fields. By implementing the OAI2forCCK module, you can expose content (its metadata) as an OAI-PMH repository. It will then be accessible by OAI harvesters. For further OAI documentation, please see here:


  • Receive OAI-PMH request of service providers in form of HTTP request (GET or POST)
  • Handle and responsd to the OAI-PMH request
  • Map Drupal nodes (created by CCK module) to OAI records (use the configuration on admin settings for oai2ForCCK)
  • Respond to OAI-PMH request in form of HTTP response (XML) to the service provider

D6 branch

The D6 branch allows a user to select which content types they wish to expose in their OAI repository. After selecting the content types to expose, the user can specify fields from each content type to expose and assign them a tag like 'dc:subject', 'dc:creator', etc. The D6 version can currently respond to Identify, GetRecord, ListIdentifiers, ListMetadataFormats, and ListRecords requests. ListSets is currently not implemented (and not required by OAI).

The D6 version allows the user to specify the number of requests to send in each response (with resumptionToken provided if neccesary). Resulting repository validates against

Drupal 7

For Drupal 7 OAI-PMH support see the Views OAI-PMH. This is a Views plugin which creates a OAI-PMH data provider using any fields which the Views module has access to.

Other Projects

As an alternative, check out the OAI-PHM module. It works hand in hand with the bibliography module to expose biblio content in an OAI-PHM repository.

D5 branch: The D5 branch is functionally different from the D6 branch in the way it handles exposing content. There are a few pending patches in the issue queue for the D5 branch. joachim has expressed interest in applying these patches and bringing the D5 branch up to speed. The functionality changes in the D6 branch will most likely not be ported back to the D5 branch, and I wouldn't expect there to be a clean upgrade path from 5->6 in the immediate future.

Currently D5 branch isn't supported.

Project information