Back to Claude Scientific Skills

Saved Searches

scientific-skills/pyzotero/references/saved-searches.md

2.38.02.0 KB
Original Source

Saved Searches

Retrieving Saved Searches

python
# Get all saved search metadata (not results)
searches = zot.searches()
# Returns list of dicts with name, key, conditions, version

for search in searches:
    print(search['data']['name'], search['data']['key'])

Note: Saved search results cannot be retrieved via the API (as of 2025). Only metadata is returned.

Creating Saved Searches

Each condition dict must have condition, operator, and value:

python
conditions = [
    {
        'condition': 'title',
        'operator': 'contains',
        'value': 'machine learning'
    }
]
zot.saved_search('ML Papers', conditions)

Multiple Conditions (AND logic)

python
conditions = [
    {'condition': 'itemType', 'operator': 'is', 'value': 'journalArticle'},
    {'condition': 'tag', 'operator': 'is', 'value': 'unread'},
    {'condition': 'date', 'operator': 'isAfter', 'value': '2023-01-01'},
]
zot.saved_search('Recent Unread Articles', conditions)

Deleting Saved Searches

python
# Get search keys first
searches = zot.searches()
keys = [s['data']['key'] for s in searches if s['data']['name'] == 'Old Search']
zot.delete_saved_search(keys)

Discovering Valid Operators and Conditions

python
# All available operators
operators = zot.show_operators()

# All available conditions
conditions = zot.show_conditions()

# Operators valid for a specific condition
title_operators = zot.show_condition_operators('title')
# e.g. ['is', 'isNot', 'contains', 'doesNotContain', 'beginsWith']

Common Condition/Operator Combinations

ConditionCommon Operators
titlecontains, doesNotContain, is, beginsWith
tagis, isNot
itemTypeis, isNot
dateisBefore, isAfter, is
creatorcontains, is
publicationTitlecontains, is
yearis, isBefore, isAfter
collectionis, isNot
fulltextContentcontains