pyzotero

Pyzotero is a Python wrapper for the Zotero API v3. Use it to programmatically manage Zotero libraries: read items and collections, create and update references, upload attachments, manage tags, and export citations.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "pyzotero" with this command: npx skills add k-dense-ai/claude-scientific-skills/k-dense-ai-claude-scientific-skills-pyzotero

Pyzotero

Pyzotero is a Python wrapper for the Zotero API v3. Use it to programmatically manage Zotero libraries: read items and collections, create and update references, upload attachments, manage tags, and export citations.

Authentication Setup

Required credentials — get from https://www.zotero.org/settings/keys:

Store credentials in environment variables or a .env file:

ZOTERO_LIBRARY_ID=your_user_id ZOTERO_API_KEY=your_api_key ZOTERO_LIBRARY_TYPE=user # or "group"

See references/authentication.md for full setup details.

Installation

uv add pyzotero

or with CLI support:

uv add "pyzotero[cli]"

Quick Start

from pyzotero import Zotero

zot = Zotero(library_id='123456', library_type='user', api_key='ABC1234XYZ')

Retrieve top-level items (returns 100 by default)

items = zot.top(limit=10) for item in items: print(item['data']['title'], item['data']['itemType'])

Search by keyword

results = zot.items(q='machine learning', limit=20)

Retrieve all items (use everything() for complete results)

all_items = zot.everything(zot.items())

Core Concepts

  • A Zotero instance is bound to a single library (user or group). All methods operate on that library.

  • Item data lives in item['data'] . Access fields like item['data']['title'] , item['data']['creators'] .

  • Pyzotero returns 100 items by default (API default is 25). Use zot.everything(zot.items()) to get all items.

  • Write methods return True on success or raise a ZoteroError .

Reference Files

File Contents

references/authentication.md Credentials, library types, local mode

references/read-api.md Retrieving items, collections, tags, groups

references/search-params.md Filtering, sorting, search parameters

references/write-api.md Creating, updating, deleting items

references/collections.md Collection CRUD operations

references/tags.md Tag retrieval and management

references/files-attachments.md File retrieval and attachment uploads

references/exports.md BibTeX, CSL-JSON, bibliography export

references/pagination.md follow(), everything(), generators

references/full-text.md Full-text content indexing and retrieval

references/saved-searches.md Saved search management

references/cli.md Command-line interface usage

references/error-handling.md Errors and exception handling

Common Patterns

Fetch and modify an item

item = zot.item('ITEMKEY') item['data']['title'] = 'New Title' zot.update_item(item)

Create an item from a template

template = zot.item_template('journalArticle') template['title'] = 'My Paper' template['creators'][0] = {'creatorType': 'author', 'firstName': 'Jane', 'lastName': 'Doe'} zot.create_items([template])

Export as BibTeX

zot.add_parameters(format='bibtex') bibtex = zot.top(limit=50)

bibtex is a bibtexparser BibDatabase object

print(bibtex.entries)

Local mode (read-only, no API key needed)

zot = Zotero(library_id='123456', library_type='user', local=True) items = zot.items()

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

clinvar-database

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

biopython

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

datacommons-client

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

clinical-decision-support

No summary provided by upstream source.

Repository SourceNeeds Review