Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
February 4, 2023 17:09
September 1, 2022 17:07
February 4, 2023 17:04
January 6, 2022 19:05
February 4, 2023 17:04
December 13, 2021 10:55
December 10, 2021 17:20
July 25, 2018 11:02
October 26, 2018 16:17
January 5, 2022 14:58
September 1, 2022 17:13
August 3, 2014 00:06
September 1, 2022 17:13

Supported Python versions Docs MIT licensed PyPI Version Anaconda-Server Badge Downloads

Pyzotero: An API Client for the Zotero API


  1. pip install pyzotero or conda config --add channels conda-forge && conda install pyzotero
  2. You'll need the ID of the personal or group library you want to access:
    • Your personal library ID is available here, in the section Your userID for use in API calls
    • For group libraries, the ID can be found by opening the group's page:, and hovering over the group settings link. The ID is the integer after /groups/
  3. You'll also need to get an API key here
  4. Are you accessing your own Zotero library? library_type is 'user'
  5. Are you accessing a shared group library? library_type is 'group'.


from pyzotero import zotero
zot = zotero.Zotero(library_id, library_type, api_key)
items =
# we've retrieved the latest five top-level items in our library
# we can print each item's item type and ID
for item in items:
    print('Item: %s | Key: %s' % (item['data']['itemType'], item['data']['key']))


Full documentation of available Pyzotero methods, code examples, and sample output is available on Read The Docs.


  • Using pip: pip install pyzotero (it's available as a wheel, and is tested on Python 3.7 and up)
  • Using Anaconda:conda config --add channels conda-forge && conda install pyzotero
  • From a local clone, if you wish to install Pyzotero from a specific branch:


git clone git://
cd pyzotero
git checkout dev
pip install .


Run pytest . from the top-level directory.


The latest commits can be found on the dev branch, although new features are currently rare. If you encounter an error, please open an issue.

Pull Requests

Pull requests are welcomed. Please read the contribution guidelines. In particular, please base your PR on the dev branch.


As of v1.0.0, Pyzotero is versioned according to Semver; version increments are performed as follows:

  1. MAJOR version will increment with incompatible API changes,
  2. MINOR version will increment when functionality is added in a backwards-compatible manner, and
  3. PATCH version will increment with backwards-compatible bug fixes.


Pyzotero has a DOI:
You may also cite Pyzotero using CITATION.cff.
A sample citation (APA 6th edition) might look like:

Stephan Hügel, The Pyzotero Authors (2019, May 18). urschrei/pyzotero: Version v1.3.15.


Pyzotero is licensed under the MIT license. See license.txt for details.

† This isn't strictly true: you only need an API key for personal libraries and non-public group libraries.