Plugins/ZoteroImport 2.0

With this plugin you can move your Zotero research into Omeka, making it possible to further organize and exhibit your Zotero library. Just sync your library to the Zotero server, tell the Zotero Import plugin what library you want to import, and it'll pull in source items, notes, files, and web snapshots.


The plugin imports Zotero libraries and collections, including source items, notes, files, and web snapshots. Web snapshots are zipped up directories containing the files needed to render the web snapshot.

To minimize data loss that often occurs when migrating between systems, the plugin adds a new Zotero element set containing elements identical to the fields used by Zotero.

In addition to mapping data to the Zotero element set, the plugin maps data to the native Dublin Core element set to maximize interoperability and ease integration with Omeka. The Zotero element set is large, but the plugin provides a helper function to build strings from the elements therein.

The plugin also adds a field to the advanced search page that narrows search results by Zotero item type. Every Zotero item has an item type, so it's a helpful way to sort through your items.


  • Sync Zotero library: The Zotero library must be synced to the server prior to import. To import files, the Zotero client must be set to sync attachment files. You can find instructions on how to do this at the Zotero website. Note, the import will not work from Zotero Standalone.

Zotero library feed.jpg

The user or group owner can get you the userID, groupID, and collectionID.

  • Private key: To access access private libraries and collections and to download attachments (files and web snapshots), a private key is required. A key is not necessary to access citations saved in public libraries and collections. The owner of the library can generate private keys in their account settings. Private keys must be set to allow third party access.

PHP Zip extension: Zotero stores web snapshots in ZIP files containing files with Base64 encoded filenames. The import plugin attempts to decode the filenames using PHP's Zip extension. If your server does not have this extension installed, the plugin does not decode the filenames. The import will still save web snapshots, but the filenames will be obfuscated, making access near-worthless.

Installation and Importing

1. If you want to import all file types, you must disable file upload validation in Omeka Admin > Settings > Security Settings before import.

2. Once you've installed the plugin, go to the "Zotero Import" tab in the admin interface and fill out the form (/admin/zotero-import).

3. To fill out the form, you will need find the feed URL to the Zotero library you want to import and, if desired or necessary, a private key to access those sources. Click "Continue" to begin the importing process.

Zotero dashboard.jpg

4. Depending on the size of the library, the import process may take some time to complete. Because of this we suggest that you log background processes:

  • In omeka/application/config/config.ini make sure log.processes = true
  • In omeka/application/logs/ make sure a processes.log file exists and is writable

This is not required but will be helpful if something goes wrong halfway through a long import. It's important to note that the import process is only as stable as the Zotero API. If you encounter errors, delete the import and try again.

Stopping and Deleting an Import

If you make a mistake, you may stop an import at any time by clicking "Stop Import" in the Zotero Import admin panel. You may also delete the items from an import after the process finishes, by clicking "Delete Import." Deleting imports will delete all imported items and files.