Home
cd ../playbooks
Research & WritingBeginner

Scientific Pyzotero

Interact with Zotero reference management libraries using the pyzotero Python client. Retrieve, create, update, and delete items, collections, tags, and attachments via the Zotero Web API v3. Use this skill when working with Zotero libraries progr...

5 minutes
By K-Dense AISource
#scientific#claude-code#pyzotero#machine-learning#visualization#database#genomics#writing

Your Zotero library has 3,000 references but you need to bulk-update tags, export specific collections, or sync items from a search — tasks the GUI makes tedious one-by-one. PyZotero gives you full Python API access to your Zotero library for bulk operations, automated imports, and programmatic reference management.

Who it's for: researchers automating reference management tasks across large Zotero libraries, systematic review teams bulk-importing and organizing search results in Zotero, lab groups managing shared Zotero libraries with programmatic tagging and organization, science writers pulling citation data from Zotero into custom report formats, librarians building automated workflows for institutional reference collections

Example

"Bulk-tag our Zotero library items by research topic and export a bibliography for our grant" → PyZotero workflow: library item retrieval with collection and tag filtering, automated tag assignment based on title and abstract keywords, collection reorganization by research topic, formatted bibliography export in specified citation style, and attachment management for linked PDFs

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# Pyzotero

Pyzotero is a Python wrapper for the [Zotero API v3](https://www.zotero.org/support/dev/web_api/v3/start). 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:
- **User ID**: shown as "Your userID for use in API calls"
- **API Key**: create at https://www.zotero.org/settings/keys/new
- **Library ID**: for group libraries, the integer after `/groups/` in the group URL

Store credentials in environment variables or a `.env` file:

Get new playbooks like this one

One email a week with new Claude Code workflows. Free, like everything here.

No spam. Unsubscribe anytime.

README.md

What This Does

A scientific skill for pyzotero workflows with Claude Code.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Projects/pyzotero

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Projects/pyzotero/

Step 3: Start Claude Code

cd ~/Projects/pyzotero
claude

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]"

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()

Tips

  • Read the docs: Check the official pyzotero documentation for latest API changes
  • Start simple: Begin with basic examples before tackling complex workflows
  • Save your work: Keep intermediate results in case of long-running analyses

$Related Playbooks

Research & Writing

Scientific Research Grants

Write competitive research proposals for NSF, NIH, DOE, DARPA, and Taiwan NSTC. Agency-specific formatting, review criteria, budget preparation, broader impacts, significance statements, innovation narratives, and compliance with submission requir...

10 minutes
Intermediate
Research & Writing

Scientific Research Lookup

Look up current research information using the Parallel Chat API (primary) or Perplexity sonar-pro-search (academic paper searches). Automatically routes queries to the best backend. Use for finding papers, gathering research data, and verifying s...

5 minutes
Beginner
Research & Writing

Scientific Scholar Evaluation

Systematically evaluate scholarly work using the ScholarEval framework, providing structured assessment across research quality dimensions including problem formulation, methodology, analysis, and writing with quantitative scoring and actionable f...

10 minutes
Intermediate
Research & Writing

Scientific Scientific Brainstorming

Creative research ideation and exploration. Use for open-ended brainstorming sessions, exploring interdisciplinary connections, challenging assumptions, or identifying research gaps. Best for early-stage research planning when you do not have spec...

10 minutes
Intermediate
Research & Writing

Scientific Scientific Critical Thinking

Evaluate scientific claims and evidence quality. Use for assessing experimental design validity, identifying biases and confounders, applying evidence grading frameworks (GRADE, Cochrane Risk of Bias), or teaching critical analysis. Best for under...

10 minutes
Intermediate
Research & Writing

Scientific Scientific Writing

Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRA...

10 minutes
Intermediate
Research & Writing

Scientific Venue Templates

Access comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant propo...

10 minutes
Intermediate
Research & Writing

Scientific What If Oracle

Run structured What-If scenario analysis with multi-branch possibility exploration. Use this skill when the user asks speculative questions like 'what if...', 'what would happen if...', 'what are the possibilities', 'explore scenarios', 'scenario ...

15 minutes
Advanced
Research & Writing

Personal Research Analyst

Deliver structured, sourced, six-section research briefings every time — executive summary, key findings with citations, context, conflicting views, implications, and a ranked source list.

10 minutes
Intermediate
Research & Writing

Advanced Web Search Assistant

Formulate effective web search queries, analyze search results, and synthesize findings. Optimize search strategies for different types of information needs.

10 minutes
Advanced
Research & Writing

User Research Synthesis

Synthesize user interviews, surveys, and usability tests into actionable insights with themes, personas, and design recommendations.

10 minutes
Intermediate
Research & Writing

Research Synthesizer

Synthesize findings across multiple documents, reports, or transcripts with theme identification, contradiction mapping, gap analysis, and confidence-scored insights.

10 minutes
Intermediate

Browse all Research & Writing playbooks →